記事詳細ページに関連記事一覧のリンクを設置する方法。
下記のコードで同じカテゴリーの記事を呼び出します。
<?php
$categories = get_the_category();
$category_ID = array();
foreach($categories as $category):
array_push( $category_ID, $category -> cat_ID);
endforeach ;
$args = array(
'post__not_in' => array($post -> ID),
'posts_per_page'=> 3,
'category__in' => $category_ID,
'orderby' => 'rand',
);
$query = new WP_Query($args);
?>
posts_per_page
が記事の取得件数になります。「3」を「5」に変更すると最大5件表示されます。
記事のカテゴリーが複数選択されている場合、「AもしくはB」で取得されます。(AとB両方)
'orderby' => 'rand',
を'orderby' => 'date','order' => 'DESC',
に変更すると新着順、'orderby' => 'date','order' => 'ASC',
にすると古い順になります。
orderbyのパラメータは、その他にも以下のようなオプションがあります。
date | 投稿日時による並び替え(デフォルト) |
---|---|
title | タイトルによる並び替え |
name | スラッグによる並び替え |
modified | 最終更新日時による並び替え |
parent | 親投稿のIDによる並び替え |
rand | ランダムに並び替え |
comment_count | コメント数による並び替え |
menu_order | メニュー順による並び替え(ページの場合のみ) |
meta_value | カスタムフィールドの値による並び替え |
meta_value_num | カスタムフィールドの数値値による並び替え |
下記のコードで関連記事一覧のリンクを書き出します。(設置したい場所に、表示したいHTMLで設置する。)
<?php if( $query -> have_posts() ): while ($query -> have_posts()): $query -> the_post(); ?>
<a href="<?php the_permalink() ?>">
<?php the_title(); ?>
</a>
<?php endwhile; else:?>
<p>関連記事はありません</p>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
実際にこのページにも設置しているのでご確認ください。(HTMLやCSSは調整しています。)
参考:https://tamatuf.net/wordpress/wordpress-category-in-article/
【WordPress参考書】
■初級・入門向け
いちばんやさしいWordPressの教本 第5版 5.x対応 人気講師が教える本格Webサイトの作り方 (「いちばんやさしい教本」シリーズ)
■初級・入門向け
いちばんやさしいWordPressの教本 第5版 5.x対応 人気講師が教える本格Webサイトの作り方 (「いちばんやさしい教本」シリーズ)
■中級・実務向け
[改訂版]WordPress 仕事の現場でサッと使える! デザイン教科書[WordPress 5.x対応版] (Webデザイナー養成講座)
■上級・開発向け
エンジニアのためのWordPress開発入門 (Engineer’s Library)
WordPressユーザーのためのPHP入門 はじめから、ていねいに。[第3版] 〈WordPress 5.x/Gutenberg対応〉