WordPressにて同一の「子カテゴリ」の記事一覧の表示で・・・
一苦労・・・
WordPressのメソッドで表示記事のカテゴリを取得する
get_the_category()
というのがあります。
これが、「カテゴリ名」順で取得してくれるので困ってしまいました。
カテゴリは下記の構造でして・・・
親カテゴリ1 「遊園地」
└ 子カテゴリ1 「ワンダーらんど!」
└ 子カテゴリ2 「DESTINY LAND」
└ 子カテゴリ3 「西部園」
親カテゴリ2
親カテゴリ3
こんな感じ。
で、例えば記事の子カテゴリが「DESTINY LAND」だったとすると
子カテゴリーの一覧を出そうとして
勝手な想像で get_the_category() で取得するカテゴリーリストの末端が子カテゴリ・・・という想定だったのが・・・
※今回 記事一つにつき 親カテゴリー – 子カテゴリー の想定を外さない仕様です。
親カテゴリがとれて上の例だと「遊園地」全部取れちゃったという感じになりました。
あれ・・・get_the_category() ってなに順?
そして、「タイトル名」順をカテゴリーID順にするのってどうするんだ・・・という疑問に駆られ調査・・・
こちらの記事がとても参考になりました。
助かりましたーーーーー
get_the_categoryをカテゴリーid順に取得するようにする | Simple Colors
get_the_categoryをカテゴリーid順に取得するようにする | Simple Colors.
で、最終のカテゴリ(この場合は子カテゴリ)を取得しそのカテゴリの記事一覧を表示したコードは下記のようなものです。
[php]
(前略)
・
・
・
< ?php
wp_reset_query();
global $post;
$cat = get_the_category();
// カテゴリーID順にソート ↓↓↓
usort( $cat, ‘_usort_terms_by_ID’);
$slug = $cat[(count($cat) – 1)]->slug;
$post_id = get_the_ID();
//$posts = query_posts(‘orderby=date&posts_per_page=5&category_name=’.$slug);
$posts = query_posts(
array(
‘orderby’=>’date’,
// ‘post__not_in’=>array($post_id),
‘posts_per_page’=>5,
‘category_name’=>$slug
)
);
if ($posts) {
?>
-
< ?php
この記事が気に入ったら
いいね ! しようTwitter で Follow taman777
if($posts) {
foreach($posts as $post) {
setup_postdata($post); ?>