我正在我的wordpress网站上尝试过滤搜索结果,具体取决于当前登录的用户角色。
我在functions.php中找到了各种在线过滤器,但我想我需要稍微修改一下这个功能。
我的PHP技能是基本的,这似乎打破了网站。我猜测语法都错了。
关于我哪里出错的指示?提前谢谢!
// SEARCH FILTER
function filter_search($query) {
if (current_user_can('customer')) {
if ($query->is_search) {
$query->set('post_type', array('customers', 'images'));
};
return $query;
} else {
if ($query->is_search) {
$query->set('post_type', array('journalists', 'images', 'videos', 'documents'));
};
return $query;
};
};
add_filter('pre_get_posts', 'filter_search');
我已经创建了自定义用户角色,而'customer'就是其中之一。
答案 0 :(得分:0)
我在您的代码中看到的直接问题是您的if语句不完整。
($query->is_search) {
应该是:
if($query->is_search) {
需要在两个地方进行更改。
<强> [UPDATE] 强> 另外一个问题是这两行:
return $query; };
您不需要上一个};
。那是过早关闭其中一个嵌套的if语句。只需使用:
return $query;