制作会社から制作会社じゃない会社に転職が決まりました。制作会社で学んだことを残らず記事にしたいと思います。

パンDKOTORI Blogの公式キャラクター「パンD」です。
コーディングWordPress『wp_list_categories()』にbefore,afterを設定して文字列を追加[WordPress]

『wp_list_categories()』にbefore,afterを設定して文字列を追加[WordPress]

2013年12月05日WordPress 便利コード 
『wp_list_categories()』にbefore,afterを設定して文字列を追加[WordPress]記事のアイキャッチ画像

カテゴリ別アーカイブリストを表示するタグ『wp_list_categories()』で出力されるリンクテキストに任意の文字列を追加する方法です。「before」「after」引数と同じような設定を行えます。

まえがき

月別アーカイブリストを表示するタグ『wp_get_archives()』には引数に「before」と「after」が用意されていて好きな文字列をリンク文字の前後に入れることが可能ですが、カテゴリ別アーカイブリストを表示するタグ『wp_list_categories()』には何故か「before」と「after」が用意されておらず、好きな文字列を入れることが出来ません。どうしてさ!!!
そんな『wp_list_categories()』ですが、function.phpにコードを追加するだけで「before」「after」と同じような設定を行うことが可能になります。

『wp_list_categories()』に「before」「after」を設定し文字列を追加する

function.phpに以下のコードを追加します。

add_filter ( 'wp_list_categories', 'span_before_link_list_categories' );
function span_before_link_list_categories( $list ) {
$list = str_replace('<a href=','<span>・</span><a href=',$list); //リンクテキストの前に「<span>・</span>」を追加(before)
$list = str_replace('</a>','<span>・</span></a>',$list); //リンクテキストの後に「<span>・</span>」を追加(after)
return $list;
}

このコードをfunctions.phpに追加することでリンクテキストの前後に「<span>・</span>」が付くようになります。
「<span>・</span>」の部分は好きな文字列に変更してください。
function.phpにコード追加できたらそれだけで『wp_list_categories()』で出力したリンクに設定した文字列が追加されるはずです。

ちょこっと説明すると、「span_before_link_list_categories」関数で、『wp_list_categories()』が出力するタグの中のaタグを「str_replace」で判定して文字列置換しています。

str_replace-文字列関数-初心者のPHP入門

まとめ

この方法を発見する前はわざわざ「$categories = get_categories();」してforeach文で無理やり文字列追加してたんですがこっちの方が断然お手軽ですね。
ていうか標準で「before」「after」くらい付けてくれてもよさそうですが。。。
色々あるのでしょうね笑
しばらくはこの対処法で乗り切ります。

シェアするみんなシェアしてね

フォローするフォローする

いつもKOTORI Blogをご覧いただきありがとうございます。Facebook、Twitterを通じて、皆様と交流していき色んな情報を共有していければな~と思ってます。お気軽に登録してください!

基本フォロー返します。

RSSを登録する

RSSはこちらから。

follow us in feedly

Feedly使ってる人はこちらから。

Buy me a Beer

動く!パンDのLINEスタンプ
好きな人にアプローチスタンプ
パンDのLINEスタンプ

関連する記事関連する記事も読んでみてね

コメント