Php 我可以在登录Wordpress后更改菜单吗?

Php 我可以在登录Wordpress后更改菜单吗?,php,wordpress,echo,Php,Wordpress,Echo,我有一个wordpress网站。我做了两份菜单。一个应该在用户未登录时显示,另一个用于用户登录时显示。我说的是自己登录网站,而不是仪表板 如何将菜单从未登录的菜单更改为当前的菜单 我已经尝试将以下代码添加到functions.php页面,但它不起作用 function my_wp_nav_menu_args( $args = '' ) { if(session_status() != PHP_SESSION_NONE ) { $args['menu'] = 'logged-in'; } else

我有一个wordpress网站。我做了两份菜单。一个应该在用户未登录时显示,另一个用于用户登录时显示。我说的是自己登录网站,而不是仪表板

如何将菜单从未登录的菜单更改为当前的菜单

我已经尝试将以下代码添加到functions.php页面,但它不起作用

function my_wp_nav_menu_args( $args = '' ) {
if(session_status() != PHP_SESSION_NONE ) {
$args['menu'] = 'logged-in';
} else {
$args['menu'] = 'logged-out';
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
我不确定下一步该去哪里,我在谷歌上也找不到任何解决方案。希望有人能帮助我


我还确保我得到了会话_start();在每个.php页面的顶部。

您可以创建两个不同的菜单,并使用简单的if-else:

<?php
   if ( is_user_logged_in() ) {
      wp_nav_menu( array( 'theme_location' => 'registered-menu' ) );
   } else {
      wp_nav_menu( array( 'theme_location' => 'visitor-menu' ) );
   }
?>


好的,谢谢你,我们会编辑它的!您可能比检查会话状态更幸运。如果您能更好地描述“不起作用”,我们也能为您提供更多帮助。你到底希望你的代码会发生什么,发生了什么与之不同的事情?哦,对了!我想改变一下菜单。因此,当一个人登录时,菜单应更改为登录菜单,如果没有,则应更改为注销菜单。它只是停留在注销的那一个。当我使用数据库登录时,用户是如何登录的?当你说你使用数据库登录时,确切地说是什么意思?我有一个带有用户名和密码的数据库,如果登录匹配,我会启动会话。就我所知,如果使用db登录,if会检查用户是否登录到仪表板。这不是我想检查的。我想将它检查到我的login.php文件,并更改普通注册用户的菜单。