为什么wp_list_ages更改页面的$POST->ID?

时间:2014-12-28 作者:Kukulza

因此,我有一个模板,用于一个部分中的所有页面,该部分有一个脚本,用于创建基于子菜单的菜单:

<?php
    if($post->ID = 142) {
        $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0&depth=1");
    }
    elseif($post->post_parent) {
        $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0&depth=1"); 
    }

    if ($children): ?>
        <ul>
            <li<?php if ( is_page($post->post_parent)) { echo \' class="current_page_item"\'; } ?>>
                <a href="<?php echo get_permalink($post->post_parent) ?>">Overview</a>
            </li>
            <?php echo $children; ?>
        </ul>
<?php endif; ?>
问题是,当生成此菜单时(它正确地执行此操作),它会保留父页面id 142,并开始从自定义字段输出内容,就像它是该页面一样。有趣的是,我打电话给the_title 再往下看,它会返回正确的页面标题。即使在wp_reset_querywp_reset_postdata.

我只需要该页面获取自己的ID!

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

看起来问题出在IF语句上。

if($post->ID = 142)

应该是if($post->ID == 142) (注意2个等号)

否则,您只需将变量$post->ID重置为142

结束

相关推荐

WordPress Get_Pages子导航显示当前页面

我正在使用Wordpress中的get\\u页面在页面上创建一个子导航。我知道我可以使用wp\\u list\\u页面,但我想在bootstrap中控制不同屏幕大小的链接。使用这种代码可以用类名指示子导航中的当前页面。在wp\\u list\\u页面中,它将是“current\\u page\\u item”<?php $page_args = array( \'child_of\' => $post->post_parent,