WordPressでカテゴリー別の記事一覧を作る
スポンサーリンク
WordPressでちょっとだけ複雑なカテゴリーごとの記事一覧を作ったので、そのやり方についてメモ。
なお、以下に書くのはコードを自分で書き込むやり方です。同じことをやってくれるプラグインもあるんじゃないかなと思いますので、自分でコードを書き付けたくない人はそちらを探してみてください。
実際に動作を確認したWordPressのバージョンは3.1.2です。
どういう記事一覧を作ろうとしたかというと、「本来の記事一覧」と「おまけの記事一覧」を出力し、なおかつ「おまけの記事一覧」のみライター名を記すということをしたかったわけです。こういう感じですね。
本来の記事
- 記事1
- 記事2
おまけ記事
- おまけ記事1(Aさん)
- おまけ記事2(Bさん)
おまけ記事は「おまけ」カテゴリーに入っています。なので、「おまけ」カテゴリーの記事だけを除外した最近の投稿一覧と、「おまけ」カテゴリーの最近の投稿一覧という形にすればいいわけです。
さて、記事一覧の呼び出しですがget_posts()
を使うことにします。get_posts()
は本文以外の記事データを呼び出すWordPressタグです。記事のリストを出力するだけですから、本文は必要ありませんからね。
で、特定カテゴリーだけを除外する方法ですが、カテゴリーIDにマイナスをつけて呼び出すだけです。カテゴリーIDを知る方法は、管理画面→投稿→カテゴリーと進むと設定済みのカテゴリー一覧が表示されるので、そこで目的のカテゴリーのリンクを見ます。リンク中のtaxonomy=category&tag_ID=1
という文字列がカテゴリーIDを示しています。この場合なら“1”ですね。
というわけで、カテゴリーID=1を除外して呼び出すにはcategory=-1
となります。
$posts = get_posts( 'numberposts=10&category=-1' );
これで「ゲスト」カテゴリーの記事を除いた記事一覧を得ることができました。あとは記事リストを出力するだけです。
で、最終的にこういうコードになりました。これをsidebar.phpに直接書きこんで完成です。
<h3>本来の記事</h3> <ul><?php $posts = get_posts( 'numberposts=10&category=-1' ); global $post; if( $posts ): foreach( $posts as $post ): setup_postdata( $post ); echo "<li><a href='"; the_permalink(); echo "'>"; the_title(); echo "</a></li>"; endforeach; endif; ?></ul> <h3>おまけ記事</h3> <ul><?php $posts = get_posts( 'numberposts=10&category=1' ); global $post; if( $posts ): foreach( $posts as $post ): setup_postdata( $post ); echo "<li><a href='"; the_permalink(); echo "'>"; the_title(); echo "("; the_author(); echo "さん)</a></li>"; endforeach; endif; ?></ul>
スポンサーリンク
WordPressカテゴリーの投稿
- [WordPress] 記事が更新された回数を取得する
- [WordPress] ダッシュボードのウィジェットを表示オプションを使わずに非表示化する
- [WordPress] 関連記事をカテゴリーに基づきアイキャッチ画像つきで表示
- [WordPress] バックアッププラグインの特徴と機能比較
- [WordPress] タグ版wp_list_categories
- [WordPress] have_comments()がFALSEを返しコメントが表示されない現象
- [WordPress] 個別記事ページでカテゴリーを表示するときの目的別の方法
- [PHP] 文字長がnバイト以下になるまで末尾の文字を1字づつカット
- [WordPress] wp_insert_post()でhtmlタグが除去されるのを防ぐ
- [WordPress] カテゴリー・タグ・カスタムタクソノミーを外部から登録・編集する