Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何编辑此代码,以便在用户登录时只更改主页顶部的菜单栏,而不更改主菜单?_Php_Wordpress_Wordpress Theming - Fatal编程技术网

Php 如何编辑此代码,以便在用户登录时只更改主页顶部的菜单栏,而不更改主菜单?

Php 如何编辑此代码,以便在用户登录时只更改主页顶部的菜单栏,而不更改主菜单?,php,wordpress,wordpress-theming,Php,Wordpress,Wordpress Theming,我正在使用OceanWP主题创建我的网站 我有两个不同的菜单在我的主页上,我有一个顶部菜单,我也有一个主菜单 我希望顶部菜单为登录用户和注销用户显示不同的选项 我已经使用了我放在functions.php文件中的以下代码。我还为登录和注销用户创建了两个不同的菜单: function my_wp_nav_menu_args( $args = '' ) { if( is_user_logged_in() ) { $args['menu'] = 'logged_in'; } else {

我正在使用OceanWP主题创建我的网站

我有两个不同的菜单在我的主页上,我有一个顶部菜单,我也有一个主菜单

我希望顶部菜单为登录用户和注销用户显示不同的选项

我已经使用了我放在functions.php文件中的以下代码。我还为登录和注销用户创建了两个不同的菜单:

function my_wp_nav_menu_args( $args = '' ) {

if( is_user_logged_in() ) { 
    $args['menu'] = 'logged_in';
} else { 
    $args['menu'] = 'logged_out';
} 
    return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
它似乎可以为登录和注销的用户显示不同的菜单,但问题是它也会更改主菜单和顶部菜单

prntscr.com/podv5e

我希望主菜单保持不变,只需更改顶部菜单即可


我想知道是否有办法调整代码,使其仅适用于顶部菜单而不适用于主菜单?

您可以执行以下操作:

function my_wp_nav_menu_args( $args = '' ) {

if( is_user_logged_in() ) { 
    echo "Here you put HTML code when logged in";
} else { 
    echo "Here you put HTML code when logged out"
} 
}

由于echo的工作方式与直接写入HTML的方式类似,因此它似乎与几年前的代码和问题相同:代码不是OP的,而是从一个示例中借用的。他不知道如何回应你的建议。嗨,蒂莫,谢谢你。实际上,我使用的代码工作正常,但我遇到的问题是,位于顶部菜单下方的主菜单也在镜像顶部菜单。我只希望顶部菜单根据用户是否登录/注销而改变,但希望主菜单保持不变:prntscr.com/pogjd。你知道我如何编辑代码,只改变顶部菜单而不影响主菜单吗?事实上,你只使用顶部菜单的HTML代码,而不是整个菜单。还有一些关于你自己代码的更多信息会有所帮助。啊,我明白了。我在这方面有点新手。我不确定在哪里可以找到顶部菜单的HTML。以下是我在firefox中看到的内容:。会是这些吗?我使用的代码是另一个用户给我的,是我以前问过的另一个问题。您需要关于代码的哪些信息?我想知道php代码对顶部菜单的HTML做了哪些更改。从表面上看,顶部菜单和主菜单以某种方式连接在一起,您需要将它们分开。它可能是某个变量,同时引用顶部菜单和主菜单。更改代码会影响该变量,该变量同时影响顶部菜单和主菜单。但我也可能错了,这个问题确实是个谜:/