2017-07-18 4 views
0

投稿者publicまたはprivateをユーザエージェント情報と投稿データ(実際には特定の権限のないユーザからの特定の投稿を非表示にする)に応じてマークする機能を無効にします。私はポストprivateのすべてを作るために、このコードを期待していWordpress - get_post_statusフィルタはカテゴリ内で無視されます

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

:ここにMCVEは私の問題を実証しています。これは私がポストページを直接開いていますが、 "カテゴリ"ページでこのポストはまだ見えます。

他に何私はこの例を正しく動作させるためにオーバーライドする必要がありますか?例えば、ユーザーが(ユーザーに表示したくない記事からその種に基づいて)ログインおよび/または特定の権限を持っている場合をチェック - あなたはこれを達成するために何か他のものを使用する必要があります

答えて

0

あなたのコードスニペットあなたが指摘したように、 - $ IDをグローバル変数として設定されているため(単一投稿ページ上で動作します - しかし、これは常に:)

...すべてのユーザーからのすべての投稿を非表示になります見てくださいhere

+0

私はこれが唯一の例であることを前述しました。実際には、権限のないすべてのユーザーからのすべての投稿を非表示にする必要があります。しかし、何かが間違っていて、それはポストページにのみポストを隠しますが、カテゴリー/ etcではポストされません。 –

関連する問題