Wordpressのwp_list_pages()にて出力されるコード改変について質問です。
海外のフォーラム等をあさり、以下のコードをfunctions.phpに入力で、current_page_item以外のclassを削除、current_page_itemのclass名を変更までは出来ました。
------------------------------------------------------
// remove class & rename class
function my_css_attributes_filter($var) {
if(is_array($var)){
$varci = array_intersect($var, array(’current_page_item’));
$cmeni = array(’current_page_item’);
$selava = array(’active’);
$selavaend = array();
$selavaend = str_replace($cmeni, $selava, $varci);
}
else{
$selavaend = ’’;
}
return $selavaend;
}
add_filter(’page_css_class’, ’my_css_attributes_filter’, 100, 1);
// remove empty class
function strip_empty_classes($menu) {
$menu = preg_replace(’/ class=(["\’])(?!active).*?\1/’,’’,$menu);
return $menu;
}
add_filter (’wp_list_pages’,’strip_empty_classes’);
------------------------------------------------------
ここまではいいんですが、希望として<li>タグでなく直下の<a>タグに変更したclass名を出力したいのと、current_page_item以外にcurrent_page_parentのほうも残しつつ、class名を変更したいです。Wordpressのバージョンは4.0です。
ご教授よろしくお願い致します。
みんなの回答 2 件
いくらくれる?
いちいち置換するよりは、URLとページ番号だけを正規表現で切り出し、それを好きなタグで囲んで出力してやる方が早い。get_calendar() をカスタマイズする時そうした。
関連するトピックス