« Nov 2008 December 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Jan »

デフォルトでは、Categoriesから親カテゴリをクリックすると、親カテゴリとそれに属する子カテゴリの記事が一覧で表示される。それを親カテゴリの記事のみの表示にするカスタマイズ。

テスト環境:wp2.6.2

例えば、このサイトは「Blog」と言うカテゴリの下に「SLOT&PACHI」・「Game」・「Comics」というカテゴリがあります。

Blog
├ SLOT&PACHI
├ Game
└ Comics

サイドバーから「Blog」をクリックすると、「Blog」カテゴリとその子カテゴリに属している記事が全て表示される仕様のようです。これを「Blog」カテゴリに属している記事のみ表示するカスタマイズ。

参考
子カテゴリの記事を表示させないようにするには:Wordpress.org日本語 フォーラム

ここで提示されているコードでできました。以下コピペ。


<?php
if (is_category()) {
	$current_cat = get_query_var('cat');
	if ($children = get_categories('child_of='.$current_cat)) {
		$exclude = array();
		foreach ($children as $child)
		$exclude[] = $child->term_id;
		query_posts(array('cat'=>$current_cat, 'category__not_in' => $exclude));
	}
}
?>

私の場合は、Aboutのカテゴリページで使用してます。Aboutカテゴリページ用のテンプレートをcategory-ID.php(*1) を作ってますので、そのテンプレートでループ開始の直前に上記のコードを挿入しました。

特に問題なく動いてます。

本当は件数も親カテゴリの横は合計ではなく、親カテゴリのみの記事件数にしたかったのですが、それはできませんでしたw
コアファイルいじらないとダメなのかな?

以下は、旧バージョンの備忘録。何かの参考になるかもしれないのでw

WP2.2.3MEでは、wp-includes/query.phpの884行目をコメントアウトすればできたはず


//$whichcat .= get_category_children($q['cat'], '', ', ');

  1. IDは実際は数字です [Back]

No Comments yet...

コメントはまだありません。

Leave a Reply

お名前・メールアドレス・コメントは必須です。(メールアドレスは非公開です)
Gravaterに登録しているメールアドレスを入力すれば、オリジナルのアイコンにすることができます。




スマイリーアイコンをクリックするとコメント内に挿入する事ができます。(投稿後に反映されます)
コメントのみ非公開にできます。(名前とかは表示されてしまう模様w)
URLを2つ以上入れると承認が必要なコメントとして処理されます。管理人の承認後、表示されます。

Copyright ©2003-2010 SLOHOLIC. Some rights reserved.
HTML convert time: 2.617 sec. Powered by WordPress 2.8.4
Page veiw: Total 127156 / Today 92 / Yesterday 89
Online User: 1

back to top