我之前问过一个关于列出所有子页的问题:
Listing all sub-pages?
但所有的问题都错了。
无论如何,我现在有一个更简单的问题。
global $post;
echo $post>ID
完全可以,但只在页面侧边栏上。当它位于blog循环(在blog部分)旁边时,它会变得疯狂,例如blog的ID为216(loop.php中的$post>ID显示为216),而提要栏中的$post>ID显示为87。为什么会这样?如何解决这个问题?
非常感谢。
[编辑]
我怀疑循环和侧栏都分别包含在索引页中,并且循环得到的帖子ID与侧栏不同。最大的问题是如何改变这一点。
[为Rarst编辑]
wp_reset_postdata();
global $post;
$children = wp_list_pages(\'title_li=&child_of=\'.$post->ID.\'&echo=0\');
echo $children;
给出相同的结果。它适用于页面,而不是博客。我有一个正常的循环,比如在210中。
最合适的回答,由SO网友:Bainternet 整理而成
如果我理解正确,您正试图在小部件中显示页面的子页面列表,如果是这样,请首先检查您是否在使用条件标记的页面上is_page()
然后,您可以像t31os指出的那样使用$wp\\u query->get\\u queryed\\u object\\u id(),因此您的小部件显示功能应该如下所示:
if (is_page()){
Global $wp_query;
$current_page_id = $wp_query->get_queried_object_id();
$children = wp_list_pages(\'title_li=&child_of=\'.$current_page_id.\'&echo=0\');
echo $children;
}
因此,只有在页面上,此代码才会运行