• 解決済 robocon150

    (@robocon150)


    下記の記事を参考にタクソノミーごとに記事一覧を表示しています。
    http://weble.org/2010/10/12/taxonomy-posts
    この書き方だとログインした状態なのに「非公開」の記事が表示されません。
    一覧には出てきませんが、記事の詳細ページは「非公開:●●」という感じで見ることはできます。
    試しにget_postsにpost_statusを設定してみました。
    ’post_status’ => ’publish’
    →非公開記事が表示されない
    ’post_status’ => ’private’
    →ログインしていない状態でも見れてしまう
    どなたか原因が分かる方いらっしゃいますでしょうか?

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • get_posts そのものは、ログイン状態に応じて非公開の投稿も表示するようには作られていません。post_status で指定された状態の記事(投稿)だけを取得します。

    トピック投稿者 robocon150

    (@robocon150)

    gblsm様
    ご返信ありがとうございました。get_postsの仕様なのですね。
    もし可能であれば追加の質問にもお答えいただけると嬉しいです。

    ①タクソノミーごとに一覧を表示しつつ、非表示の記事も表示する、という書き方はあるのでしょうか?
    ②get_postsが「post_status で指定された状態の記事(投稿)だけを取得」する仕様というのは、phpを理解している人であれば自明のことなのでしょうか?

    No.1について。参考にされたコードの中で

    $tax_posts = get_posts(array('post_type' => get_post_type(), 'taxonomy' => $taxonomy_name, 'term' => $taxonomy->slug ) );

    $args = array(
        'post_type' => get_post_type(),
        'taxonomy' => $taxonomy_name,
        'term' => $taxonomy->slug,
        'post_status' => array( 'publish', 'private' )
    );
    $tax_posts = get_posts( $args );

    に変えると「公開」と「非公開」の記事(投稿)を両方とも取得できます。

    No.2 について。get_posts は PHP で書かれた関数ですが、PHP を理解していても自明ということはないと思います。

    トピック投稿者 robocon150

    (@robocon150)

    gblsm様
    ご回答ありがとうございました。
    'post_status' => array( 'publish', 'private' )
    とすると、ログインしていないユーザーにまで表示されてしまうので、条件分岐することで思い通りの表示を実現できました。

    if ( is_user_logged_in() ) {
    	$mystatus = array( 'publish', 'private' );
    } else {
    	$mystatus = 'publish';
    }

    「get_posts は PHP で書かれた関数ですが、PHP を理解していても自明ということはない」ということなので、自分で調べながら理解していくことになるのですね。
    gblsm様、ありがとうございました。助かりました。

    トピック投稿者 robocon150

    (@robocon150)

    解決済みにします。

    robocon150さん、少し補足させてください。

    No.2 について。get_posts は PHP で書かれた関数ですが、PHP を理解していても自明ということはないと思います。

    get_posts は WordPress 本体に用意されている関数です。説明ページが用意されているので使い方の参考にできます。

    上記の日本語Codexのページはパラメーターをぜんぶ挙げてはおらず、詳しくはWP_Queryのページを見るようにとのことですので、そちらもご覧ください。

    トピック投稿者 robocon150

    (@robocon150)

    gblsm様
    補足情報ありがとうございます!参考にさせていただきます。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「記事一覧にログインしているのに非公開の記事が表示されない」には新たに返信することはできません。