WordPressでログイン中のユーザーのみメインループの記事一覧に下書きや公開予定も表示できるようにする

Wordpressでログイン中のユーザーのみメインループの記事一覧に下書きや公開予定も表示できるようにする
このエントリーをはてなブックマークに追加
PR

WordPressのループ表示はデフォルトはpost_statusがpublishとなっており、公開した記事だけがループの所に表示されるようになっています。これはユーザーがログイン中かの有無に関わらず同じ表示です。

 

個別の記事はプレビューというログインユーザー専用のURLがあり、そちらの方でどのように表示されるかを確認することが出来るのですが、一覧ページ等では表示の確認をすることデフォルトのままでは出来ません。

限られたケースですが、ログインのユーザーには下書きや公開予定の記事を表示させたい時がありますので、ログイン中のユーザーには下書き、公開予定の記事もメインループの記事一覧に表示させる方法。

 

WordPressでログイン中のユーザーか判定して、メインループを変更する

まずは、ログイン中のユーザーかどうかを判断します。ログイン中かどうかを判断する専用の条件分岐タグ is_user_logged_in() があるのでそれを使います。

次にメインループに変更を加えるために query_posts を使ってメインループの条件を変更します。

 

まとめたものがこのようになります

<?php if ( is_user_logged_in() ):
$paged = get_query_var('paged');
query_posts( array(
 'paged' => $paged,
 'post_status'=>array(
 'publish',
 'future',
 'draft'
 )
));
endif; ?>

 

ページネーションがあるときには、paged を取得して指定しておかないとページネーションが上手く行きません、あとは post_status の値を array でpublish以外のfutureとdraftを指定することで。公開予定記事と、下書き記事もメインループの表示の条件に加えます。

 

あとは、メインループの終了のところに query_posts をリセットするタグを入れます

<?php wp_reset_query(); ?>

 

 

query_posts を使うときは<?php wp_reset_query(); ?>はセットで使います。リセットしておかないと、どこかのループに干渉してしまって思わぬ動きになります。

こちらのコードを使う機会がありましたので、忘備録的に書きました。

 

 

PR

COMMENT

コメントを残す

PR

9ineBBの管理人が運営するサイト

WDG WEB DESIGN GALLERY ウェブデザインギャラリー CC0 PHOTO 無料で使える高画質な写真をダウンロード、クレジット表記、リンク不要

9ineBBの最新情報をチェック・購読

Twitter Facebook Google+ Feedly RSS

どこをクリックしてもこの表示を消せます
(3日後以降に再度表示されます)