Php 添加过滤器不用于返回登录用户

Php 添加过滤器不用于返回登录用户,php,wordpress,Php,Wordpress,我有一个代码片段来检测用户是否登录-如果是,则在顶部菜单中显示“我的帐户”和“注销”链接,如果不是,则显示“登录”链接 它可以正常工作,直到用户选中“记住我”选项登录,离开我的网站而不注销并返回 然后,“登录”显示在顶部菜单上,而不是“我的帐户”和“注销”。它的行为并不正常,点击后,用户不会被重定向到登录页面,而是会立即显示“我的帐户”和“注销”。此外,向购物车添加任何内容都会显示“我的帐户”和“注销” 我通过var_dump()进行了检查,它是用户登录的,在我单击“登录”或向购物车添加内容之前

我有一个代码片段来检测用户是否登录-如果是,则在顶部菜单中显示“我的帐户”和“注销”链接,如果不是,则显示“登录”链接

它可以正常工作,直到用户选中“记住我”选项登录,离开我的网站而不注销并返回

然后,“登录”显示在顶部菜单上,而不是“我的帐户”和“注销”。它的行为并不正常,点击后,用户不会被重定向到登录页面,而是会立即显示“我的帐户”和“注销”。此外,向购物车添加任何内容都会显示“我的帐户”和“注销”

我通过var_dump()进行了检查,它是用户登录的,在我单击“登录”或向购物车添加内容之前,不会返回任何内容。我尝试将优先级更改为1或9999,但没有效果

// Add login & logout buttons to secondary menu.
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') {
   $items .= '<li><a href="'. get_permalink( woocommerce_get_page_id( 'myaccount' )) . '">My account</a></li>
              <li><a href="'. wp_logout_url( get_permalink( woocommerce_get_page_id( 'myaccount' ) ) ) . '">Logout</a></li>';
  }
  elseif (!is_user_logged_in() && $args->theme_location == 'secondary') {
   $items .= '<li><a href="' . get_permalink( woocommerce_get_page_id( 'myaccount' ) ) . '">Login</a></li>';
  }
  return $items;
}
//将登录和注销按钮添加到辅助菜单。
添加过滤器(“wp\u导航菜单项”,“添加登录链接”,10,2);
函数add\u loginout\u link($items,$args){
如果(用户是否已登录()&&&$args->theme\u location=='secondary'){
$items.='
  • '; } elseif(!是否已登录用户()&&&$args->theme\u location=='secondary'){ $items.='
  • '; } 退回$items; }
    它应该是这样工作的。 我想到的两件事。 插件搞砸了。尝试禁用所有插件并切换到默认主题。如果仍然存在问题,解决方法是通过creatign 2菜单进行过滤,并根据If(is_user_logged_in())显示正确的菜单。。。。这个应该100%有效