【问题标题】:Why Can't I Include A Blog?为什么我不能包含博客?
【发布时间】:2010-11-01 20:51:41
【问题描述】:

我经常遇到这样一种情况,即“当权者”希望在网站的多个位置获得一个页面的精确副本。我所做的只是覆盖导航中突出显示的部分,然后包含该页面,而不是实际复制内容。最终页面如下所示:

<?php
    $top_nav_item_id = 'teen';
    include('../interests/teacher-resources.php');
?>

这通常有效。我正在尝试将这个复制到一个博客类别中,在 wordpress 中完成。不管我做什么,我似乎得到的只是一个空白页。我已经尝试了以下所有行:

<?php
    include('../blog/index.php');
    include('../blog/type/teen/index.php');
    include('../blog/type/teen/');
    include('../blog/');
?>

有人有什么想法吗?这是 URL 重写的事情吗?我是否必须包含该特定类别的模板文件?

感谢任何帮助。

【问题讨论】:

  • 你确定用一些 apache 重写魔法不会更好吗?

标签: php wordpress include


【解决方案1】:

PHP include 需要文件,而不是 URL,因此它无法访问 WordPress 公开的 URL 命名空间。这些文件不存在于磁盘上; mod_rewrite 首先将漂亮的 URL 转换为对 index.php 的内部请求,WordPress 根据原始 URL 找出您真正想要的内容,从数据库中获取一堆内容,然后生成页面。

【讨论】:

    【解决方案2】:

    这是一个相当复杂的话题,而且从一开始就不是很明显。 This 页面应该可以帮助您入门。关键是要包含 WordPress 博客标题 - 在链接页面上进行了说明。您可能还想查看WordPress Codex 以获取有关使用 WordPress 引擎 API 的资源。

    【讨论】:

      【解决方案3】:
      ini_set('display_errors', true);
      error_reporting(E_ALL);
      

      不知道出了什么问题,但确实如此。也许 Wordpress 找不到它的环境,也许某些变量被覆盖了......实际上,包含像 wordpress 这样的解决方案是个坏主意,因为你永远不知道,什么全局变量、函数、类会相交。

      PS:顺便说一下,include 使用文件系统路径而不是 URL。

      【讨论】:

        【解决方案4】:

        对于类似的问题,我使用 iframe 来包含内容的副本。您可以编写原始页面以在 url 中查找 "?embed=1" 标志,并且仅在存在 embed 标志时将可嵌入内容包含在主页中(这样您就可以省去多余的工具栏和框架.) 所以 iframe src url 会使用 ?embed=1 标签来嵌入内容。

        【讨论】:

          【解决方案5】:

          这个解决方案有点小题大做,但是问题一开始就有点小题大做。

          我收到了关于为什么我不能包含博客页面的很好的解释,但没有任何适合我的替代方案。

          我的最终解决方案是直接修改该页面的类别模板。如最初所述,我使用 $top_nav_item_id 来控制在导航中突出显示哪个菜单项,以给出属于该部分的页面的外观。我没有覆盖它,而是简单地使它以查询字符串为条件。只要用户在我的网站上关注合法链接,他们就会得到正确的查询字符串并且没有问题。

          $_POST 在 Wordpress 中被禁用。 $query_string(内置于 WP)使用某种缓存,并且总是在首次加载时显示。

          最终解决方案:

          if(strtolower($_SERVER['QUERY_STRING'])=='display=teen') {
              $top_nav_item_id = 'teen';
          } else {
              $top_nav_item_id = 'programs';
          }
          

          感谢所有试图提供帮助的人。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-23
            • 1970-01-01
            • 2023-04-04
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多