• inuiと申します。初めて投稿させていただきます。
    現在 WordPress2.7.1を利用させてもらっています。
    ユーザの権限管理を細かく管理でき、公開記事と非公開記事が設定できるのでメンバーで話し合って一般公開してもいい記事は「公開」、メンバー内だけで連絡等は「非公開」と切り替えて使ってきました。
    が、ある時RSS/RSS2/ATOM/RDFを配信してみたら、非公開としてきた記事まで公開されているではないですか!

    これでは意味がない。

    RSS/RSS2/ATOM/RDFで非公開記事は配信しないようにするには、どうカスタマイズすればいいかヒントでも教えて頂ければ助かります。

    現在 wp-include/query.php をカスタマイズして対応できないか検討中。

    以上、よろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    inuiさん、こんにちは。

    ログアウト状態でも非公開記事が出力されていますか?
    出力されているのであれば、query.phpをカスタマイズしてしまうよりも、posts_where_requestでフックさせてsql文に条件を追加する方が、今後のアップグレード、アップデートが楽になります。

    トピック投稿者 inui

    (@inui)

    jim912様、コメントして頂きありがとうございます。
    RSS配信に関しては、ログアウトしている状態とは関係なく、そのサイトのRSSを取得される外部サイトから見れば、ユーザーがログイン/ログアウト関係ないですから。
    また、自分自身がログアウトしていても、同様に全く関係なく、非公開記事を参照できてしまいます。
    (もしかするとバグに近いのかもしれませんが)

    ひとまず全文参照させずに、抜粋にしたり、件数を1件(0件にはできないようで)としたり、サイトに来てもRSSの公開URLを表示させず、HTML上にも出さずにしてますが、知った方なら簡単に非公開情報まで参照できてしまうのです。

    教えて頂いた「posts_where_requestにフックを掛ける」方法で試してみたいと思います。

    モデレーター jim912

    (@jim912)

    inuiさん、こんにちは。

    私のローカル環境で試したところ、
    ログイン時:非公開記事も含めたRSSが出力される。
    ログアウト時:非公開記事を含まないRSSが出力される。
    となっています。

    RSSも要は、コンテンツの出力形態をhtmlからRSS他に変えただけなので、元の記事抽出ロジックは同じなのです。で、非公開記事を読める権限でログインしている場合は、非公開記事を含めたRSSが出力されるという訳です。

    状態にかかわらず、どうしても非公開記事がRSSで出力されてしまうのであれば、先の返信の通りフックさせて条件付加させるのと、プラグインを停止してみての状況などを確認してみてください。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「RSS配信に非公開記事を出さないようにするには」には新たに返信することはできません。