为什么wp_list_pages不能在functions.php中运行?

时间:2013-09-20 15:34:58

标签: wordpress

我正在使用以下代码添加一个子菜单,该子菜单仅显示当前顶级父级和任何子页面(如果在其父级内)。它直接在sidebar.php中使用时有效,但当我将它包装在一个函数中并将其放在functions.php中时,它只显示我所有的顶级菜单项而不是活动的父项。我怎样才能让它发挥作用?

在侧边栏中工作:

<?php
$child_of_value = ( $post->post_parent ? $post->post_parent : $post->ID );
    $depth_value = ( $post->post_parent ? 2 : 1 );
        $wp_list_pages_args = array( 
            'child_of' => $child_of_value,
            'depth' => $depth_value,
            'title_li' => '<a href="'.get_permalink($post->post_parent).'">'.get_the_title($post->post_parent).'</a>'
        );
    wp_list_pages( $wp_list_pages_args );
?>

在functions.php中不起作用

function page_submenu() {   
    $child_of_value = ( $post->post_parent ? $post->post_parent : $post->ID );
    $depth_value = ( $post->post_parent ? 2 : 1 );
        $wp_list_pages_args = array( 
            'child_of' => $child_of_value,
            'depth' => $depth_value,
            'title_li' => '<a href="'.get_permalink($post->post_parent).'">'.get_the_title($post->post_parent).'</a>'
        );
    wp_list_pages( $wp_list_pages_args );
}

1 个答案:

答案 0 :(得分:0)

我需要在函数中添加global $post;。它有效!