为什么我的页面不知道它是一个页面(is_page()不会返回TRUE)?

时间:2011-08-23 作者:supertrue

我有一页写着鼻涕虫blog. 我的网站。com/blog从模板文件页面blog正确呈现。php。但是,它不会从我的主题中执行以is_page(\'blog\'), 管理栏中也没有“编辑页面”链接。

我还有一个自定义帖子类型,名为blog, 但此页不执行的代码is_post_type_archive(\'blog\') 任何一个在管理栏中,没有“编辑类别”链接或“编辑[任何其他内容]”。

这是我加载页面时WP调试插件给我的信息:

Request:
blog

Query String:
pagename=blog

Matched Rewrite Rule:
(blog)(/[0-9]+)?/?$

Matched Rewrite Query:
pagename=blog&page=
有什么问题吗?

1 个回复
最合适的回答,由SO网友:supertrue 整理而成

问题是由于在该循环之前的页面中有一个二次循环,页面知道这是一个页面;但是在循环之后(在页脚中,管理栏和我的代码将在那里呈现),页面认为这是第二个循环的最后一篇文章。

wp\\u reset\\u query()和wp\\u reset\\u postdata()均不起作用;我猜这与我使用$wp\\u query作为二级循环的名称有关(这样我就可以使用loop.php模板文件来显示帖子)。以下是有效的代码:

$temp_query = clone $wp_query; 

$wp_query = new WP_Query( \'post_type=publication&posts_per_page=5\' );

get_template_part( \'loop\' );
/* get_template_part( \'loop\' ) only seems to work if the query is in $wp_query */

$wp_query = clone $temp_query; ?>
以下是codex中克隆$wp\\u查询技术的链接:http://codex.wordpress.org/The_Loop#Multiple_Loops_Example_2

结束

相关推荐

Posts vs Pages and categories

我正在为图书馆的收藏/档案室创建一个基本上静态的网站。由于我希望大多数内容只创建一次,并随着时间的推移慢慢添加或修改,而不是常规的帖子,所以我的第一个倾向是将所有内容都变成一个页面。另一方面,我有两个或三个类别的页面/帖子,我非常希望能够生成这些页面/帖子的列表,除了使用类别和帖子,我想不出一个好的方法来做到这一点。我知道有一个插件允许您使用类别标记页面,但我这样做时get\\u帖子并不总是有效。我有需要多个类别并相互重叠的内容,这一事实是否比这一内容基本上应该是静态的更重要?我有一个由专门针对特定主题的