2017-07-18 75 views
0

忽略我想覆蓋get_post_status功能,以紀念這取決於用戶代理信息和發佈數據的帖子publicprivate(基本上,隱藏一些特定的非法用戶一些具體的職位)。下面是MCVE證明我的問題:WordPress的 - get_post_status過濾器在類別

add_filter('get_post_status', function($post_status, $post) { 
    return 'private'; 
}, 10, 2); 

我期待這個代碼,以使所有的職位private的。這個作品然後我直接打開帖子頁面,但在「類別」頁面上,這個帖子仍然可見。

我還應該重寫哪些內容才能使此示例正確工作?

回答

0

您應該使用其他方法來完成此操作 - 例如,檢查用戶是否已登錄並且/或者具有某種特權(並根據這些信息挑選出您不想顯示給用戶的帖子)。

您的代碼段,正如你所指出 - 工程單後的網頁上(因爲$ ID設置爲一個全局變量 - 但是這將隱藏所有用戶的所有帖子......總是:)

看看here

+0

我在上面提到過,這只是一個例子。實際上,它應該隱藏所有未經授權的用戶的所有帖子。但是出了點問題,它只在帖子頁面上隱藏帖子,而不是從類別/等等隱藏。 –