簡體   English   中英

根據登錄的用戶角色過濾wordpress搜索結果

[英]Filter wordpress search results depending on which user role is logged in

我正在嘗試在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');


我已經創建了自定義用戶角色,“客戶”就是其中之一。

我在您的代碼中看到的直接問題是您的if語句不完整。

($query->is_search) {

應該:

if($query->is_search) {

這兩個位置都需要更改。

[更新]這兩行都是另一個問題:

return $query; };

您不需要最后一個}; 那是過早關閉嵌套的if語句之一。 只需使用此:

return $query;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM