複数の投稿者でWordPressブログを運営している場合、
「特定の投稿者の記事だけをまとめて読みたい」という読者さんも出てきます。
そこで、固定ページ等の任意の場所に投稿者別の記事一覧を表示する方法を解説します。
手順1:function.phpに呼び出し用のコードを記述する
WordPressで著者別の記事一覧を表示する方法としては、
PHPを直接いじったり、プラグインで表示させる方法もあります。
例えば、Fancier Author Boxというプラグインを使えば下記のように、
著者別におしゃれな自己紹介欄や最新記事、全記事一覧も簡単に設置できます。
しかし、WordPressのログインユーザー名が丸見えになってしまうため、
セキュリティ面を考えるとあまりよろしくないと思います。
そこで、安全面と利便性を考慮して「ショートコード」で表示する方法を解説します。
2STEPで完了しますので、とても簡単です。
まずは下記のコード本体を「function.php」の末尾に貼り付けてください。
[php]
//*=============================================*
//*指定した著者名の記事一覧を表示
function set_ItemLists_byId( $atts, $content = null) {
extract(shortcode_atts(array(
‘num’ => ”,
‘author’ => ”
), $atts));
global $post;
$user = get_user_by( ‘login’,$author );
if(empty($user->ID)){
exit(0);
}
$oldpost = $post;
$myposts = get_posts(‘author=’.$user->ID.’&orderby=date&post_type=post&numberposts=’.$num);
$retHtml='<ul>’;
foreach($myposts as $post) :
setup_postdata($post);
$retHtml.='<li><a href="’.get_permalink().’">’.the_title(”,”,false).'</a></li>’;
endforeach;
$retHtml.='</ul>’;
$post = $oldpost;
return $retHtml;
}
add_shortcode(‘kiji-list-Id’, ‘set_ItemLists_byId’);
[/php]
※function.phpの編集は「画面が真っ白になる」などのトラブルが発生しやすいので、
必ず事前にバックアップを取ってから作業をしてください。
当ブログの場合は、メシオプレス01のテーマカラー「カスタム」を使っていますので
カスタマイズ専用の「function-custom.php」に貼り付けています。
手順2:記事一覧を呼び出すためのショートコードを記入する
コードの本体の準備ができたあとは、
記事一覧を表示したい任意の場所に下記のショートコードを貼り付けます。
[html]
[[kiji-list-Id author="ユーザー名" num="記事数"]]
[/html]
コードにある各パラメーターは、
- ユーザー名 = 記事一覧を表示したい投稿者のログインユーザー名
- 記事数 = 表示できる最新の記事数
という意味です。貼り付け時に変更して保存してください。
例えば、ログインユーザー名「tarou」さんの記事を「10記事」表示したい場合は、
[html]
[[kiji-list-Id author="tarou" num="10"]]
[/html]
といった感じに変更してください。
ここまでの作業に問題がなければ、
ショートコードを貼りつけたページに指定した投稿者の記事一覧が表示されます。
今回は私(菊池)のプロフィールページに表示させてみました。
WordPressには今回のショートコードや専用の関数のように
ブログを自分好みにカスタマイズするための機能が多数用意されています。
こういった拡張性の高さもWordpressの人気の一因ですね。
●本日のまとめ
Wordpressを使って複数の投稿者でブログを運営していて、
投稿者別の記事一覧を表示させたい場合、ショートコードを使えば固定ページ等の
任意の場所に投稿者別の記事一覧を簡単に表示させることができる。