$theTitle=wp_title(" - ", false); if($theTitle != "") { ?>
WordPressのカスタマイズとプラグイン、CSSテクニック、SEOの話題など。
In: WordPress
7 11月 2008できたできた、とうとうできた!
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を別の変数に変えたら大丈夫でしたが、代わりにこのリスト出力が機能しなくなります。対応研究中。。。
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.
ここは、SE見習いである私ことdaceloが、日夜習得していくシステム関連の備忘録、phpやWordPressTipsのネタ、あるいはSEOやWebマーケティング関連の雑感を投稿するブログです。 平日は大体毎日投稿しています。土日は休業日です。
6 Responses to WordPressの同一カテゴリ内の記事リスト
トラックバックURL:WordPressの同一カテゴリ内の記事リスト | setting_web
7月 23rd, 2009 at 9:19 PM
[...] http://blog.dacelo.info/wordpress/entry-485.html [...]
bingung
7月 26th, 2009 at 9:55 PM
bahasa planet boss
dacelo
7月 27th, 2009 at 8:54 AM
Maaf, itu mesin terjemahan.
同じカテゴリーの記事のリストを表示する | Choco Bis Days
2月 8th, 2010 at 1:36 AM
[...] PHPを理解して使いこなせれば、プラグイン無しでもできそうです WordPressの同一カテゴリ内の記事リスト 同じカテゴリーに属する投稿記事を表示させる [...]
同じカテゴリーの記事へのリンクを表示させる
3月 16th, 2010 at 12:13 AM
[...] http://blog.dacelo.info/wordpress/entry-485.html [...]
wako.y
4月 4th, 2010 at 7:44 AM
時価40万円!がタダです。