プラグインを使わずにWordPressで関連記事を出す方法
SEOの効果を高めたり、ユーザビリティをよくするためのレコメンド機能をプラグイン無しで簡単に実装する方法。詳細ページ(single.php)で、カテゴリをもとにランダムで記事を表示します。これはあくまでも簡易的なものとなります。
エンジニア速報は Twitter の@commteで配信しています。
関連記事を出力するソースコード
get_the_category()で現在の投稿IDを取得し、WP_Queryのcategory__inでカテゴリーに属する投稿を拾ってランダムで出力します。つまり、現在表示されている投稿に属しているカテゴリーを引っ張ってきてランダムで表示しています。
get_the_category()のcat_IDはカテゴリーIDの値を引っ張ってきます。
WP_Queryのcategory__inパラメータはカテゴリーIDを使います。
<div class="recommend"> <?php $cat = get_the_category(); $cat = $cat[0]; // [0]は先頭要素 $the_query = new WP_Query( array( 'category__in' => $cat->cat_ID, // category__inはカテゴリーIDを使う 'post_type' => 'post', 'posts_per_page' => 4, // 表記数 'orderby'=> 'rand' // ランダム ) ); ?> <?php if ( $the_query->have_posts() ) : ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <article> <div class="recommend__thumbnail"> <a href="<?php the_permalink(); ?>"> <?php if (has_post_thumbnail()) : ?> <?php the_post_thumbnail(); ?> <?php else : ?> <img src="<?php echo get_template_directory_uri(); ?>/img/dummy.png" alt=""> <?php endif; ?> </a> </div> <div class="recommend__text"> <header> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> </header> </div> </article> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php else : ?> <?php endif; ?> </div>
アイキャッチ画像が無い場合はimgディレクトリを作ってdummy.pngを表示するようにしています。imgディレクトリにダミー画像を置いてください。
get_the_category
get_the_categoryは、現在の投稿が属するカテゴリーを返します。パラメータの初期値は現在の投稿IDとなります。
<?php get_the_category(); ?>
var_dumpを使うと返り値を確認することができます。term_id/cat_IDはカテゴリーID、nameはカテゴリー名、slugはスラッグ名、parentは親カテゴリーIDなどを取得できます。参考:テンプレートタグ/get the category - WordPress Codex 日本語版
<pre> <?php global $post; $categories = get_the_category( $post->ID ); var_dump( $categories ); ?> </pre>
WP_Query
WP_QueryとはWordPressのコアの中にあるクラスで、様々な投稿を読み込んで処理します。WordPress内部で実行されるメインクエリはメインループ、WP_Queryはサブループと呼ばれます。
$変数 = new WP_Query();
WP_Queryについては、ここで詳しく触れませんが、サブループを使うことによって本来のループとは別のループを作れるので、覚えておくとよいでしょう。
以上、WordPressのシングルページでプラグインを使わずに関連記事を出力する方法でした。
WordPressカスタマイズに便利なテクニック一覧
- [開発環境] WordPressをコマンドでインストールする
- [開発環境] Vagrant+Virturlbox+VCCWの使い方
- [雛形] WordPressのif文(条件分岐)
- [雛形] 便利なテンプレートタグ
- [構築] functions.phpに書いておくべきこと
- [構築] パンくずリストを出す方法
- [構築] コメントを設置する簡単な方法
- [管理画面] プラグインの自動更新通知メールを停止させる
- [管理画面] 管理画面のユーザーページに項目を追加する
- [管理画面] カスタムポストを追加する
- [翻訳] 多言語サイトを作るプラグイン「bogo」の使い方
- [フォーム] 「MW WP Form」の使い方と住所自動入力
- [関連記事] プラグインを使わずにWordPressで関連記事を出す方法
- [SEO] タイトルのカスタマイズ
- [pre_get_posts] カテゴリページや検索結果の表示を調整
スポンサード リンク
関連記事
- WordPressプラグインの自動更新通知メールを停止させる
- WordPress:pre_get_postsを用いてカテゴリページや検索結果の表示を調整する
- WordPress:タイトルを自在にカスタマイズする方法
- WordPressプラグイン「MW WP Form」の使い方と住所自動入力(郵便番号で動かない場合)
- WordPressでカスタムポストを追加するシンプルな方法
- WordPress管理画面のユーザーページに項目を追加する
- よく使うWordPressのif文(条件分岐)まとめ
- WordPressでパンくずリストを出す方法
- WordPressテーマ作成の時に覚えておくと便利なテンプレートタグ
- WordPressのfunctions.phpに書いておくと捗ること
Leave a Comment