根据登录的用户角色过滤wordpress搜索结果

时间:2012-03-18 04:18:50

标签: php wordpress

我正在我的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'就是其中之一。

1 个答案:

答案 0 :(得分:0)

我在您的代码中看到的直接问题是您的if语句不完整。

($query->is_search) {

应该是:

if($query->is_search) {

需要在两个地方进行更改。

<强> [UPDATE] 另外一个问题是这两行:

return $query; };

您不需要上一个};。那是过早关闭其中一个嵌套的if语句。只需使用:

return $query;