为什么我不能包含博客?
我通常会遇到这样一种情况:“所需的权力”需要网站上多个地方的页面的精确副本。而不是实际上复制内容,我所做的只是覆盖导航栏中突出显示的部分,然后包含页面。最终的页面看起来是这样的:为什么我不能包含博客?
<?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重写的东西?我是否必须包含该特定类别的模板文件?
任何帮助表示赞赏。
这个解决方案有点破解,但是接下来,这个问题有点琐碎。
我收到了一个很好的解释,为什么我不能包含博客页面,但没有任何替代方案适合我。
我最终的解决方案是直接修改该页面的类别模板。如前所述,我使用$ 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';
}
感谢所有谁试图帮助。
这是一个相当复杂的话题,从一开始就不是很明显。 This页面可以帮助您开始使用。关键是要包含WordPress博客标题 - 在链接页面上解释。您可能还想查看WordPress Codex以了解使用WordPress引擎API的资源。
PHP include
需要文件而不是URL,因此它无法访问WordPress公开的URL名称空间。这些文件不存在于磁盘上; mod_rewrite首先将漂亮的URL转换为index.php
的内部请求,WordPress会根据原始URL找出您真正想要的内容,从数据库中提取大量内容,然后生成页面。
ini_set('display_errors', true);
error_reporting(E_ALL);
不知道怎么回事,但是确实如此。也许Wordpress无法找到它的环境,也许有些变量被忽略了......实际上,包含像wordpress这样的解决方案是一个坏主意,因为你永远不知道,全局变量,函数,类将会相交。注意:包括使用文件系统路径而不使用URL。
对于类似的问题,我使用iframe来包含内容的副本。您可以编写原始页面以在url中查找“?embed = 1”标志,并且只有当嵌入标志存在时才在主页面中包含可嵌入的内容(这样您可以省略工具栏和冗余的框架。)所以iframe src url会使用?embed = 1标签来嵌入内容。
你确定用apache重写魔术不会更好吗? – 2009-06-10 16:05:13