为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
一只斗牛犬 2021-05-12 17:21:21
我正在尝试在我的新网站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
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

试试这个脚本。


您已将其替换secondary-menu为菜单ID。


add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );

function add_loginout_link( $items, $args ) {


    if (is_user_logged_in() && $args->theme_location == 'secondary-menu') {


        $items .= '<li><a href="'. wp_logout_url( home_url() ) .'">Log out</a></li>';

    }elseif (!is_user_logged_in() && $args->theme_location == 'secondary-menu') {

        $items .= '<li><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">My Account</a></li>';

    }

    return $items;

}


查看完整回答
反对 回复 2021-05-21
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信