任意のカテゴリーの子カテゴリーをウィジェットに表示する。【WordPress備忘録】

スポンサーリンク

カテゴリーの中の子カテゴリーを取得して子カテゴリー一覧をウィジェットに表示する方法。

忘れそうなので備忘録として。

 

準備するプラグイン

並び替えするプラグイン Category Order and Taxonomy Terms Order

※任意に並び替えしたい場合のみ。もし名前や記事数で並び替え程度なら必要なし。

 

投稿→Taxonomy Order というメニューが出来るので、そこでドラッグ&ドロップで並び替えする。

 

function.phpに関数追加

テーマ(子テーマがあれば子テーマ)のfunction.phpに以下を追加する。

add_filter('widget_text', 'do_shortcode' );

//子カテゴリを表示する
function SetPaperLabelcategory ($atts){

		extract(shortcode_atts(array(
				'postid' => '',
				'title' => '',
		), $atts));

//子カテゴリのタームを取得
$children = get_terms('category', array(
    'orderby'    => 'term_order',
    'hide_empty' => 0,
    'child_of' => $postid,
 ) );

$output = "<h3 class='widget_title sidebar_widget_title'>" . $title . "</h3><ul>";

foreach ( $children as $child ) {
	$term = get_term_by( 'id', $child->term_id, 'category' );
	$output .= '<li><a href="' . get_term_link( $child, 'category' ) . '" title="' . $taxonomy_name . '" ' . '>' . $term->name . '(' .$term->count . ')' .'</a></li>';
}

$output .= "</ul>";

return $output;

}

add_shortcode('PaperLabelcategory', 'SetPaperLabelcategory');

 

add_filterは、ウィジェットにショートコードを読み込めるようにするコード。ショートコードがウィジェットで動く場合は不要。

orderby の指定は、term_orderとしているのは、プラグインの指定。

ここに書いてあるとおりにしただけ。通常は、name や count などを指定する。

 

ウィジェットにショートコードを挿入

[PaperLabelcategory title=’タイトルで探す’ postid=’000′]

[PaperLabelcategory title=’価格で探す’ postid=’000′]

 

postidは、カテゴリー画面のURLで親カテゴリーのIDを調べる。

 

 

以上。

こうすると、子カテゴリーに追加したときでもカテゴリーにわざわざ追加することもない。

この記事を書いた人
がんちゃん

がんちゃんブログ運営者。ネットショップ運営・ウェブ制作との兼業アフィリエーターです。アフィリエイトにランチェスター戦略を取り入れた経営を目指しています。

がんちゃんをフォローする
中級カスタマイズ
がんちゃんをフォローする
初心者向けレンタルサーバー
wpX
wpX

・wordpress専用レンタルサーバー
・とにかく速い
・1サーバーあたりドメイン10個まで
・負荷に強く安定感抜群
・わかりやすい管理画面
・メインサイトにおすすめ

エックスサーバー
エックスサーバー

・使い勝手がいい
・ドメイン数無制限(実質上限50サイト)
・初心者に分かりやすいと好評の管理画面
・速度もそこそこ早く月額が安い
・メイン、サテライトともにおすすめ

mixhost
mixhost

・当サイトで使用中
・アダルトOKなサーバーでは最速
・プランがいつでも変更可能
・プレミアムプラン以上はwpX程度の速度
・管理画面が分かりづらい(cPanel)
・ドメイン数無制限(データベースも無制限でエックスサーバーより入る数は多い)
・メイン、サテライトともにおすすめ

おすすめ記事
レンタルサーバー速度比較
レンタルサーバー速度計測を本格的に行いました。今一番おすすめのレンタルサーバーは・・・
がんちゃんブログ

コメント