WordPressの同一カテゴリ内の記事リスト

In: WordPress

7 11月 2008

できたできた、とうとうできた!
WordPressでは、同一カテゴリ内の「ページ」を出力する関数はあっても、「投稿」で同様のことができる関数がないんですよね。
おそらく、CMS的にWordPressを使う際はページを使って欲しいんでしょうけど、投稿を使いたい場合もあるんですよ。既存サイトのURLを引き継ぎたい場合とか、ページ数が異様に多い場合とか。

そんなときのための、同一カテゴリ内の記事リスト出力法。

(方針)
get_the_category()でカテゴリーIDを取得、それを変数に代入して、get_posts()で記事リストをループ出力。
コードで言うとこんな感じです。

<?php
$cat = get_the_category();&nbsp; $cat = $cat[0];{
$catid= "$cat->cat_ID";
}
$myposts = get_posts('category='.$catid);
foreach($myposts as $post) :?>
&nbsp;&nbsp;&nbsp; <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を別の変数に変えたら大丈夫でしたが、代わりにこのリスト出力が機能しなくなります。対応研究中。。。

コメント

6 Responses to WordPressの同一カテゴリ内の記事リスト

トラックバックURL:

Avatar

WordPressの同一カテゴリ内の記事リスト | setting_web

7月 23rd, 2009 at 9:19 PM

Avatar

bingung

7月 26th, 2009 at 9:55 PM

bahasa planet boss

Avatar

dacelo

7月 27th, 2009 at 8:54 AM

Maaf, itu mesin terjemahan.

Avatar

同じカテゴリーの記事のリストを表示する | Choco Bis Days

2月 8th, 2010 at 1:36 AM

[…] PHPを理解して使いこなせれば、プラグイン無しでもできそうです WordPressの同一カテゴリ内の記事リスト 同じカテゴリーに属する投稿記事を表示させる […]

Avatar

同じカテゴリーの記事へのリンクを表示させる

3月 16th, 2010 at 12:13 AM

Avatar

wako.y

4月 4th, 2010 at 7:44 AM

時価40万円!がタダです。

Comment Form

About this blog

ここは、SE見習いである私ことdaceloが、日夜習得していくシステム関連の備忘録、phpやWordPressTipsのネタ、あるいはSEOやWebマーケティング関連の雑感を投稿するブログです。 平日は大体毎日投稿しています。土日は休業日です。

カテゴリー

カテゴリー

アーカイブ