如何在Wordpress PHP中动态添加子菜单?

我正在尝试在我的新网站dernier.com上添加登录/注销功能。如何在我的帐户下将登录/注销作为子菜单添加?


我已经为Wordpress菜单查找了每个文档,并尝试查找解决方案。但是到目前为止没有。


function add_loginout_link( $items, $args ) {

    $parent_title = get_the_title($post->post_parent);

    //echo $parent_title;

    //var_dump($items); 


    $menu_items = wp_get_nav_menu_items("Main Menu 2");

    foreach ($menu_items as $value) {

        //echo $value->title;  

        //echo $value->slug;

        if($value->title == "My Account"){

            //echo var_dump($value);

            $x = get_post( wc_get_page_id( 'myaccount' ) ); 

            $x->menu_item_parent = "1377";

            $test = new WP_POST($x);

            //echo var_dump($test);

            $items[] = $test; 


        }

    }

  return $items;


}


> I get the following error:  Your PHP code changes were rolled back due

> to an error on line 443 of file wp-content/themes/rosa/functions.php.

> Please fix and try saving again.   Uncaught Error: [] operator not

> supported for strings in wp-content/themes/rosa/functions.php:443 

> Stack trace:

> #0 wp-includes/class-wp-hook.php(286): add_loginout_link('<li id="menu-it...', Object(stdClass))

> #1 wp-includes/plugin.php(208): WP_Hook->apply_filters('<li id="menu-it...', Array)

> #2 wp-includes/nav-menu-template.php(243): apply_filters('wp_nav_menu_ite...', '<li id="menu-it...',

> Object(stdClass))

> #3 wp-content/themes/rosa/header.php(138): wp_nav_menu(Object(stdClass))

> #4 wp-includes/template.php(704): require_once('/var/www/UshaFo...')

> #5 wp-includes/template.php(653): load_template('/var/www/UshaFo...', true)enter code here

> #6 wp-includes/general-template.php(41): locate_template(Array, true)

> #7 wp-content/themes/rosa/page.php(9): get_header()

> #8 wp-includes/template-loader.php(77): include('/var/www/UshaFo...')

> #9 /var/www/U


一只斗牛犬
浏览 94回答 1
1回答

守着一只汪

试试这个脚本。您已将其替换secondary-menu为菜单ID。add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );function add_loginout_link( $items, $args ) {&nbsp; &nbsp; if (is_user_logged_in() && $args->theme_location == 'secondary-menu') {&nbsp; &nbsp; &nbsp; &nbsp; $items .= '<li><a href="'. wp_logout_url( home_url() ) .'">Log out</a></li>';&nbsp; &nbsp; }elseif (!is_user_logged_in() && $args->theme_location == 'secondary-menu') {&nbsp; &nbsp; &nbsp; &nbsp; $items .= '<li><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">My Account</a></li>';&nbsp; &nbsp; }&nbsp; &nbsp; return $items;}
打开App,查看更多内容
随时随地看视频慕课网APP