wordpress - WordPress 根据用户角色在首页隐藏帖子
问题描述
我有自定义用户角色“广告商”,并希望从首页排除他们的帖子“由广告商角色的用户发布”。
解决方案
pre_get_posts
例如,拥有一个“广告”类别并用于从您的查询中排除该类别会更容易。每次广告商发布新帖子时,他都需要添加此类别。
例如
add_action('pre_get_posts', 'front_page_pre_get_posts');
function front_page_pre_get_posts($query) {
if(is_front_page() && $query->is_main_query()) {
$query->set('category__not_in', array(1)); // Replace 1 by the category ID
}
}
我知道这不是您的具体问题的答案。这更像是一个建议。我将测试一些代码来完全按照您的要求进行操作,然后我会用它来更新我的答案。
更新
未经测试,但这样的事情应该可以工作。
- 添加一个钩子
pre_get_posts
- 首先,您获得具有所需角色的用户
- 然后您在查询中排除这些作者
add_action('pre_get_posts', 'front_page_pre_get_posts');
function front_page_pre_get_posts($query) {
// Get the users related to your role
$args = array(
// The role you want to exclude in your get post
'role' => 'advertiser',
// Will return an array of ids
'fields' => 'ids'
);
$users = get_users($args);
if(is_front_page() && $query->is_main_query()) {
// To exclude authors you can add a "-" before the id id of the author
$query->set('author', '-'.implode(',-', $users)); // Will generate a string like "-1,-45,-48"
}
}
推荐阅读
- php - 您可以在查询后使用类似 WHERE 子句的内容吗?
- mysql - MySQL基于两列的多个日期时间间隔
- javascript - 强制填充字符串字段的正则表达式
- eclipse - 无法从 Eclipse 市场空间下载 Kotlin 插件
- html - 使用 CSS 的计划图标
- javascript - 如何在运行函数之前等待变量初始化?(反应)
- angular - 循环依赖 Angular(只是文件名)
- python - pandas DataFrame:删除某些值时如何避免'ValueError:little-endian编译器不支持Big-endian缓冲区'
- javascript - 为什么 Kyle Simpson 的 OLOO 方法感觉像是与 Typescript 潮流背道而驰?
- google-cloud-platform - 如何使用 DLP api 从存储桶 (GCS) 读取镶木地板文件并取消识别到特定列?