函数和局部变量在另一个函数

时间:2016-02-24 23:15:29

标签: php wordpress

有些事情真的很奇怪,或者我做错了什么,我无法理解。当我在$submenu args中添加变量wp_nav_menu时,它不起作用。请参阅以下示例。

错误消息

  

严格标准:只有变量应通过

中的引用传递

此作品

$args = array(
  'menu_id' => 'sidebar-menu',
  'theme_location' => 'primary',
  'submenu' => 'About Us'
);
wp_nav_menu( $args );

这不起作用

$args = array(
'menu_id' => 'sidebar-menu',
'theme_location' => 'primary',
        'submenu' => get_top_level_title()
    );
    wp_nav_menu( $args );

这个函数获得最顶级的父标题。

 function get_top_level_title(){
    global $post;
    $category = get_the_category( $post->ID );
    $parent_title = get_the_title( navz_top_most_parent_page_id() );
    if( is_single() ){
        $category = get_the_category( $post->ID );
        $post->post_parent = $category[0]->term_id;
        return get_cat_name($category[0]->category_parent);
    } else if( $parent_title and !is_category() ){
        return $parent_title;
    } else {
        $cat_obj = get_category( get_query_var( 'cat' ) );
        $parent = $cat_obj->parent;
        return get_cat_name($parent);
    }
}

此代码将上述函数转换为局部变量并将其传递给wp_nav_menu以获取子菜单。

   $submenu = get_top_level_title();
    $args = array(
      'menu_id' => 'sidebar-menu',
      'theme_location' => 'primary',
      'submenu' => $submenu
    );
    wp_nav_menu( $args );

0 个答案:

没有答案