Blogの公式キャラクター「パンD」です。「wp_get_archives()」で出力されるHTMLタグを徹底的にカスタマイズする方法を紹介します。まえがき今回の記事では、月別アーカイブリストを出力してくれるタグ「wp_get_archives()」で出力されるHTMLタグを徹底的にカスタマイズする方法をご紹介します。この「wp_get_archives()」タグはパラメータで「format」というものが用意されており、個々のリンクをリスト形式(liタグ)で囲ったりセレクトボックス(optionタグ)で囲ったりということは制御できるんですが、それしかできない!!「wp_get_archives()」で普通に出力されるコードはこんな感じです。href="http://kotori-blog.com/2014/11/">2014年11月</a>(2)</li>コード上の「(5)」とかは記事数ですね。お困りシチュエーションの具体例を挙げてみると記事数もaタグ内に含めたいと思っても対応できませんそれとaタグの内側にspanとか付けたいと思っても対応できませんまぁかなりマニアックなシチュエーションではあるのですがw解決していきましょう。「functions.php」に関数を定義しなおすことで出力結果を自在にカスタマイズします。「functions.php」に「wp_get_archives()」関数をコピーするそもそも関数の出力結果を変えたいなら、その関数が定義されているコアファイルを弄ってしまえば良いのです。コアファイル弄るとWordPressをバージョンアップした際に編集済みファイルが新しいファイルに上書きされ編集内容が消えてしまい結果的に元に戻ってしまいます。それを回避するため「functions.php」に新しい関数として「wp_get_archives()」を定義するのです。wp-includes/general-template.phpの1186行目です。(WordPress4.01)見つからない場合はコードを「wp_get_archives」で検索かけてみてください。実際に「wp_get_archives()」関数の中身を確認すると分かるのですが、「wp_get_archives()」関数は処理の途中で「get_archives_link()」関数をところどころで呼び出しています。「get_archives_link()」関数はドコで定義されているかというと「wp_get_archives()」関数の直ぐ上です。いうことで「wp_get_archives()」「get_archives_link()」をコピーして関数名を変更して「functions.php」に追加します。実際にKoToRiが使用したコードを晒します。下記コードをそのまま「functions.php」にペーストしてください。$output;}}関数名はそれぞれ「wp_get_archives2()」「get_archives_link2()」としてあります。「wp_get_archives()」で出力されるHTMLコードを制御している「get_archives_link()」関数を編集する「wp_get_archives2()」「get_archives_link2()」を「functions.php」に追加できたら、実際に出力されるHTMLタグを編集します。具体的にドコを編集するかというと「get_archives_link2()」関数を編集します。下記コードのハイライト部分が出力されるHTMLコードを指定している箇所になります。$link_html;}「wp_get_archives()」のデフォルトのフォーマットは「html」形式なので10行目に書かれているHTMLタグ部分を編集します。「wp_get_archives()」で出力されるHTMLコードの編集例それではこの記事のまえがきで挙げたシチュエーションに対応するコードを挙げていきます。それぞれ上記コードの10行目を編集してくださいね。記事数もaタグ内に含めたい記事数もaタグ内に含めたいなら「$after」を「</a>」の内側にいれるだけです。href='$url'>$text$after</a></li>\n";aタグの内側にspanとか付けたいこの場合は普通に追加したいHTMLコードを書きます。href='$url'><span>$text<span></a>$after</li>\n";他にも「wp_get_archives()」のパラメータ「before」をaタグ内に入れたい場合なんかも「$before」変数をaタグの内側に入れてやるだけで対応できます。好きなように編集してください。肝心の出力ですが、何も難しいことはありません。実際に表示したい場所に下記コードを追加するだけです。?>「type=monthly」となってますが、この辺はオリジナルの「wp_get_archives()」と全く同じパラメータを使用できるので適宜変更してください。「format」パラメータは指定しないでください。「get_archives_link2()」で編集したHTMLコードは「format」パラメータが「html」の時に出力されるコードになります。「format」パラメータは何も指定しないと勝手に「html」になります。まとめ若干メンドクサイ方法ではありますがHTMLコードを好きなようにカスタマイズできるという点では問題ないかと思います。実際に「wp_get_archives()」で出力されるaタグの内側にspanタグを入れたいって思った時にGoogleで色々検索したのですが有力な情報が出てきませんでした。パラメータに「show_post_count=1」を指定して出力される記事数をaタグ内に含める方法は出てきて、それがバリバリの正規表現だったのです。ぶっちゃけ今回の場合も正規表現を駆使すれば、わざわざコアファイルからオリジナル関数を引っ張ってこなくても対応できたのではないかと思います。~し!KoToRiは正規表現は全くダメなのです><ハッキリいって今回紹介した方法が最善の方法とは思っておりませんwなので誰かもっとスマートな方法を知っていたら是非とも教えてください。Blogをご覧いただきありがとうございます。Facebook、Twitterを通じて、皆様と交流していき色んな情報を共有していければな~と思ってます。@KoToRi_blog基本フォロー返します。RSSを登録するRSSはこちらから。Feedly使ってる人はこちらから。Permalinks』2014.01.12カテゴリ毎の記事一覧を表示する方法[WordPress]2013.12.12更新ボタンを押すと403エラー[WordPress]2014.02.21WordPressを手動アップグレードする方法2013.11.22コメント田中いつも分かり易く解説していただいてありがとうございます。こちらのコードで思うとおりに票田できました。一つだけ記事の件数前後に()がありますが、こちらを削除する方法ご存知ございませんでしょうか。お教えいただけタラと思いご連絡させていただきました。マルファン症候群を本物のマルファン症候群患者が徹底解説!マルファン症候群ブログはじめます。私はマルファン症候群です。