WordPressで前後の記事へのリンクを同じカテゴリだけにする

WordPressの記事ページ(single.php)が表示されたとき、「次の記事」「前の記事」へのリンクを投稿のしたにつけてるんだけど、これがカテゴリをまたがって表示されてしまう。

WEBサイトによってはコンテンツごとにカテゴリを設けてきっちり管理したいので、「次の記事へ」をクリックしたら他のカテゴリの記事に飛んでしまうのはどうもよろしくない。

そこで次の記事、前の記事へのリンクを同じカテゴリに絞る方法を紹介します。

今僕はこんな感じで記事の表示をさせているのですが、

<?php if(have_posts()): while(have_posts()): the_post(); ?>
<?php get_template_part('content'); ?>

<?php previous_post_link(); ?>
<?php next_post_link(); ?>

<?php endwhile; endif; ?>

previous_post_linkとnext_post_llinkの引き数を以下のように設定します。

<?php previous_post_link('« %link', '%title', TRUE, ''); ?>
<?php next_post_link('%link »', '%title', TRUE, ''); ?>

第3引数をTRUEにすることで同じカテゴリのリンクだけが設定できるようです。
さらに下記のように第4引数を設定すると、特定のカテゴリへのリンクだけ除外できます。複数カテゴリを指定するときはandを使う。

<?php previous_post_link('« %link', '%title', TRUE, '1 and 2'); ?>
<?php next_post_link('%link »', '%title', TRUE, '1 and 2'); ?>

詳しくはWordPress Codexをご参考下さい。
テンプレートタグ/previous post link

WordPressで特定のカテゴリの新着情報を載せたい

WordPressで作ったホームページにかかわらず、トップページによく「新着情報」って載ってるサイトあると思います。

「お知らせ」でも「ニュース」でもいいんですけど、ブログ全体の新着を載せるんじゃなくて特定のカテゴリの記事だけ5件とか10件だけ載せたいというときの方法を紹介します。WordPressなら簡単にできます。

<!--?php if(have_posts()): while(have_posts()): the_post(); ?-->
	<!--?php get_template_part('content'); ?-->
<!--?php endwhile; endif; ?-->

通常は上記のような感じで記事をループして読み出します。
この例だと記事の内容をまるごと読み込んでしまうので要約だけ載せたいときは下記のようにしてcontent-excerpt.phpを読み込んでください。
※content-excerpt.phpは別途用意しておいてください。

<!--?php if(have_posts()): while(have_posts()): the_post(); ?-->
	<!--?php get_template_part('content','excerpt'); ?-->
<!--?php endwhile; endif; ?-->

それで、WordPressで特定のカテゴリの記事だけ表示させる方法ですが、先ほどのコードに下記のように追加をしてください。

<?php query_posts("cat=1&showposts=10"); ?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
	<?php get_template_part('content','excerpt'); ?>
<?php endwhile; endif; ?>

query_postsの引数になっているcat=1&showposts=10というのはカテゴリIDが1の記事を10件表示させるという意味です。
この引数はカテゴリIDだけでなく、下記のようにカテゴリのスラッグ名で指定することも可能です。

<?php query_posts("category_name=news&showposts=10"); ?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
	<?php get_template_part('content','excerpt'); ?>
<?php endwhile; endif; ?>

複数カテゴリを選びたいときは以下のように指定してください。

<?php query_posts("cat=1,2,3&showposts=10"); ?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
	<?php get_template_part('content','excerpt'); ?>
<?php endwhile; endif; ?>

きっと役立つWordPressプラグイン44個まとめ

Web designer depotでWordPressのプラグインをまとめた記事「40+ essential WordPress plugins」を見つけたので、紹介します。

Jetpack

WordPressを使ったブログサービス、WordPress.comのユーザーにのみ使用可能であった機能を使えるようになるプラグイン。
アクセス解析のWordPress.com statsをはじめ、ソーシャルサービス連携ツール、スペルチェックと文章校正、ソーシャル連携コメント機能、イメージギャラリー、モバイルテーマ、スクロール時の自動ページ読み込み、などなど盛りだくさん。
これを入れとけば一気にWordPressの機能アップを図れるお得パック的なプラグイン。

Jetpack Lite

Jetpackの非公式ライト版。
WordPress.com statsとショートリンクサービスだけに機能を絞ってる。

Sociable

FacebookやTwitterはじめ、Tumblr、LinkedIn、Delicious、Myspace、Diggなど様々なソーシャルメディアへのシェアが可能。
海外ではポピュラーらしく170万ダウンロードを誇るプラグイン。

Google Analytics for WordPress

WordPressサイトにGoogle Analyticsを簡単に導入することができるプラグイン。

Google XML Sitemaps

検索エンジンがサイトをインデックスする際に大事な、サイトマップxmlを作ってくれるプラグイン。
SEO対策で抑えておきたいところ。

WP-Polls

サイトにアンケートのためのフォームを設置することができる。
回答結果も管理画面で確認できる。

W3 Total Cache

サイトのパフォーマンスを高速化するためのフレームワークを導入できるプラグインです。
多くの有名ブログやサイトで取り上げられていて、このプラグインをすすめるホスティングサービスもたくさんある。
使いこなせばパフォーマンスを10倍以上にすることもできるとか。

Quick Cache (Speed Without Compromise)

WordPressサイトを高速化するキャッシュプラグイン。
管理画面で各種細かい設定が可能。

WordPress SEO by Yoast

WordPressやSEO情報で知られる海外サイトYoastによるSEOプラグイン。
コンテンツや画像タイトル、メタディスクリプションをSEO対策上でいい感じにしてくれる。

All in One SEO Pack

こちらも定番のSEO対策プラグイン。
日本ではこちらのほうが馴染みがあるような。

SEO Ultimate

記事ごとにキーワードやディスクリプションなどのメタ項目を設定できるプラグイン。

WordPress Backup to Dropbox

WordPressサイトのバックアップをDropboxにしてくれるプラグイン。

Better WP Security

WordPressのセキュリティ機能やテクニックをわかりやすく操作できるようにしたプラグイン。

Revision Control

WordPressのリビジョン機能は、間違って編集中の記事を閉じてしまったときなどに便利だけど、一方でデータスペースを圧迫する。
そんなリビジョン機能をうまい具合にコントロールするのがこのプラグイン。

Contact Form 7

いわずとしれたフォーム生成の有名プラグイン。
Ajaxのフォーム送信、CAPTCHA 、スパムフィルタなど便利な機能を提供してくれる。

WordPress PopUp

海外サイトでよくあるポップアップを簡単に設置できるプラグイン。

Yet Another Related Posts Plugin

関連記事を表示してくれるプラグイン。
サイトの回遊率を上げるのによさそう。

nrelate Related Content

自分のサイト内だけではなくブログロールからも関連記事を探してきてくれるプラグイン。

Broken Link Checker

リンク切れをチェックしてくれるプラグイン。
リンク切れを放置するとSEOでもよくないし、何より読んでる人をがっかりさせる。
こういったプラグインでリンク切れを簡単にチェックできるのはありがたい。

Post Ender

記事の終わりに自分が好きな決まり文句を追加してくれるプラグイン。
「読んでくれてありがとう」など感謝の気持ちを伝えるのにも便利。
ちょっとした手間の自動化ですね。

Widget Context

特定のページやポストタイプを指定して、好きなウィジェットを表示できるように設定できる。
これは重宝しそう。

Antispam Bee

コメントやトラックバックのスパム対策。

Text Replace

記事やコメントの特定キーワードを一括で置換できるプラグイン。

Duplicate Post

記事の複製が行えるプラグイン。
何か記事のたたき台を作って活用すると便利そう。

Categories to Tags Converter

カテゴリをタグにしてくれる。その逆もできる。

Editorial Calendar Plugin

記事の公開予定やこれまでの投稿履歴をカレンダー化できるプラグイン。
投稿予定を組むのに便利。

Revisionary

投稿者が記事を公開する前に管理者が確認できるプラグイン。
複数人数でサイトを運営してるときに役立つ。

Edit Flow

複数人数でサイト運営をするときに編集者同士のコミュニケーションを助けるプラグイン。
投稿カレンダーの導入、編集者同士でやりとりできる掲示板ぽいコメント機能、 記事ステータスをカスタマイズできるようになったりする。

ManageWP

複数のWordPressサイトを一括管理できるようにするプラグイン。

WP Google Fonts

サイトにGoogle Fontsを簡単に適用できる。
CSSを書かなくても特定の要素に設定できるようになる。

SyntaxHighlighter Evolved

記事にコードを挿入するときにフォーマットを作ってくれるプラグイン。
サンプルコードを記事内で紹介するときに便利。

Hello Bar

サイト上部に通知バーを表示してくれる。
新着情報、サービス新機能の通知などに便利。

White Label CMS

ダッシュボードのWordpressロゴを差し替えたり、ログインページをカスタマイズしたりする。
クライアントワークでサイトからWordPressぽさをなくしたいときに便利。

Anthologize

WordPressブログのePub形式でパブリッシュできる。

Tweet Old Post

昔の記事を再度掘り起こしてツイートしてくれるプラグイン。

Blubrry PowerPress Podcasting

WordPressのポッドキャスト機能を強化するプラグイン。

WP Greet Box

訪問者が踏んできたURLを判別して異なる挨拶文を表示できる。
例えばTwitter経由の人とFacebook経由の人で異なる文言を表示したりできる。

The Events Calendar

イベントカレンダーが作成できる。

WPInvoice

WordPressから請求書を送ることができる。
支払い側はPaypalまたはクレジットカードで払うことができる。

BuddyPress

WordPressでSNSサイトを作ることができる。

 

Benchmark Email Lite

記事の内容をメールできたり。

WPtouch

サイトのスマートフォン対応に便利。

TubePress

動画ギャラリーの作成ができる。

Tip Jar

読者からチップがもらえるウィジェットを作成できる。

以上です。

海外でよく使われているWordPressプラグインにはどんなものがあるのか、気になる方は参考にしてみてください。

元記事のリンク「40+ essential WordPress plugins