WordPressの同一カテゴリ内の記事リスト
できたできた、とうとうできた!
WordPressでは、同一カテゴリ内の「ページ」を出力する関数はあっても、「投稿」で同様のことができる関数がないんですよね。
おそらく、CMS的にWordPressを使う際はページを使って欲しいんでしょうけど、投稿を使いたい場合もあるんですよ。既存サイトのURLを引き継ぎたい場合とか、ページ数が異様に多い場合とか。
そんなときのための、同一カテゴリ内の記事リスト出力法。
(方針)
get_the_category()でカテゴリーIDを取得、それを変数に代入して、get_posts()で記事リストをループ出力。
コードで言うとこんな感じです。
<?php $cat = get_the_category(); $cat = $cat[0];{ $catid= "$cat->cat_ID"; } $myposts = get_posts('category='.$catid); foreach($myposts as $post) :?> <li class="time<?php the_time('G-i'); ?>"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> |
これでWordPressの記事式CMSでローカルメニューができる。
これ、見る人が見たら時価40万円くらいの価値がありますぜ。
ちなみにclass=”time…”という不思議なクラス指定が入っているのは、ヘッダーで
<style type="text/css" media="screen"> li.time<?php the_time('G-i');?> a{ color:#333333; font-weight:bold; text-decoration: none; } </style> |
等と入れてハイライトさせるため。意外とこれが出来ないので若干のとんちソリューションとなりました。
注意!
副作用として、タイトル[the_title()]が、なぜかそのカテゴリーの最古の記事に固定されてしまうので、代わりに[single_post_title()]を使ってください。
注意2!
コメントの内容が別記事のものになってしまいます。
foreach($myposts as $post) :?>
の部分に問題があるようです。$postを別の変数に変えたら大丈夫でしたが、代わりにこのリスト出力が機能しなくなります。対応研究中。。。
広告
bahasa planet boss
Maaf, itu mesin terjemahan.
時価40万円!がタダです。