wordpressのウィジェット内で初めからあるカテゴリー表示では「並べ替え用プラグイン」が効かない時の解決方法

wordpress

ウィジェット内で初めからあるカテゴリー表示では並べ替えプラグインが効かないのです。一応解決策をかんがえてみた。

ウィジェット内でPHPが利用可能なプラグイン「PHP Code Widget」を追加しコードを挿入する。

get_categoriesを使用する方法

<?php
$categories=get_categories('orderby=id');
foreach($categories as $category) { 
echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . $category->name . '" ' . '>' . $category->name . '<br /><span' . $category->description .'</span></a></p>';
}
?>

 

wp_list_categoriesを使用する方法

<?php wp_list_categories(); ?>

これでうまくいくと思ったんですが問題が!パラメータを使用すると並べ替えプラグインが効かなくなりました。
並べ替えないで利用するならOKなんですが、残念失敗。

 

プラグインを使用せずウィジェットのメニューをしようする!(サイト内リンク)

めちゃくちゃ簡単です。あれこれ探したけどこれで十分かもしれません。ただ、そのままだとウィジェットのカテゴリーと違い投稿数表示が使えません。一応、投稿表示が使えるタグもありましたので書いておきます。下記コードをfunctions.phpについかするとウィジェットのメニューでも投稿数が表示されます。それでも完璧ではありません、ウィジェットで使用したメニューすべてに投稿数が表示されるので使い方が限定されます。試しながらご使用ください。

add_filter('wp_nav_menu_objects','my_nav_count');
function my_nav_count($items){
foreach ($items as $item){
if($item->object == 'category'){
$item->title .= " (". get_term($item->object_id,'category')->count .")";
$args[] = $item;
}
}
return $args;
}

参考TechMemo