。。。如果在循环之前,post->ID不会返回任何内容
一般来说,这是错误的。这个$post
对于大多数页面,在主题中循环开始之前就设置了变量。主查询将该变量“primes”到循环中的第一个post。也就是说,依赖循环外的这个变量并不是最可靠的方法。更可靠的是get_queried_object
.
$qobj = get_queried_object();
wp_list_pages(\'title_li=&child_of=\'.$qobj->ID);
因为
get_queried_object
根据您所在的页面返回不同的信息,最好在使用之前检查页面类型。
if (is_page()) {
$qobj = get_queried_object();
wp_list_pages(\'title_li=&child_of=\'.$qobj->ID);
}
或者检查对象本身。
$qobj = get_queried_object();
if (isset($qobj->post_type) && \'page\' == $qobj->post_type) {
wp_list_pages(\'title_li=&child_of=\'.$qobj->ID);
}
这些只是例子。我不知道你的确切情况是什么。