get_posts そのものは、ログイン状態に応じて非公開の投稿も表示するようには作られていません。post_status で指定された状態の記事(投稿)だけを取得します。
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 を理解していても自明ということはないと思います。
gblsm様
ご回答ありがとうございました。
'post_status' => array( 'publish', 'private' )
とすると、ログインしていないユーザーにまで表示されてしまうので、条件分岐することで思い通りの表示を実現できました。
if ( is_user_logged_in() ) {
$mystatus = array( 'publish', 'private' );
} else {
$mystatus = 'publish';
}
「get_posts は PHP で書かれた関数ですが、PHP を理解していても自明ということはない」ということなので、自分で調べながら理解していくことになるのですね。
gblsm様、ありがとうございました。助かりました。
robocon150さん、少し補足させてください。
No.2 について。get_posts は PHP で書かれた関数ですが、PHP を理解していても自明ということはないと思います。
get_posts は WordPress 本体に用意されている関数です。説明ページが用意されているので使い方の参考にできます。
上記の日本語Codexのページはパラメーターをぜんぶ挙げてはおらず、詳しくはWP_Queryのページを見るようにとのことですので、そちらもご覧ください。
gblsm様
補足情報ありがとうございます!参考にさせていただきます。