根据角色用户动态首页

时间:2017-07-20 作者:ouanounou

我想有不同的主页根据用户角色登录

如果用户未登录,则会有登录的登录页

如果候选人正在登录,则为候选人自定义主页

如果雇主登录,则主页为雇主自定义

我已经直接在wordpress中创建了我的主页,而不是在带有页面的代码中。php

我希望3个主页有相同的url

所以我在这里写下另一个问题:Dynamic homepage according to user role

我尝试:

   function wpse_273872_pre_get_posts( $query ) {
  if ( $query->is_home() && $query->is_main_query() ) {
    if(!is_user_logged_in()) return;

    $current_user = wp_get_current_user();
    $user = new WP_User( $current_user->ID);

    if(in_array(\'candidate\', $user->roles)){ //assuming the role name is candidate
      $query->set(\'p\', [ID of the page you created for candidate]);
      $query->set(\'post_type\', \'page\');
    }
    elseif(in_array(\'company\', $user->roles)){ //assuming the role name is company
      $query->set(\'p\', [ID of the page you created for employer]);
      $query->set(\'post_type\', \'page\');
    }
  }
}
add_action( \'pre_get_posts\', \'wpse_273872_pre_get_posts\' );
但他不工作我现在不工作为什么

有什么解决方案吗?

谢谢

1 个回复
SO网友:Jacob Peattie

$query->is_home() 不是“家”。$query->is_home() 检查您是否正在查看博客/帖子页面。这是WordPress网站主页始终是博客时的产物。你想把它改成$query->is_front_page(), 它检查网站的首页是否为页面,以及您是否在该页面上。

结束

相关推荐

Make a category my homepage

我一直在想方设法,阅读每一篇帖子,想知道如何让我的主页只显示类别。就我而言,我只想展示“旅行”我尝试过另一种方法,即首先将其设置为菜单,然而,该页面不会显示为我的主页,而是显示所有我的帖子,而不是仅从旅行菜单中发布的帖子,除非我单击它有没有办法绕过这一点,因为一步一步都会很棒!