私は、Worpress のデフォルト テーマのカスタマイズに取り組んでいます。アーカイブ リンクのフォーマットの問題に直面しました。
デフォルトのテーマはwp_get_archives
、 で定義された関数を使用しますgeneral-template.php
。関数の出力はカスタマイズ可能ですが、私には十分にカスタマイズできません。
基本的にその特定の機能をファイルに再実装することで、やりたいことをすべて達成できfunctions.php
ますが、Wordpress が更新されると回帰の問題が発生するため、そうすることをためらっています。wp_get_archives
DBクエリの構築やDB結果のキャッシュなど、すべての下位レベルの処理を行います。できれば、これを避けたいと思います。
私に開かれている別の方法はget_archives_link
、リンク HTML が既にフォーマットされている時点でフィルターを作成することです。それを理解するには、一連の正規表現を実行する必要があります。これは、パフォーマンスを完全に損なうため、私には完全に逆のように思えます。
これがまさに私が出力したいものです:
<li><a href="/year/01">JAN</a></li>
<li class="current"><a href="/year/02">FEB</a></li>
<li>MAR</li> <!--no blog entries this month-->
...
私が見る限りwp_get_archives
、アンカーのテキストがハードコーディングされています:
$text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);
次に、投稿のない月を追加するという問題があります。テキストを解析せずにそれを行うことをお勧めします。次に、現在のクラスを追加する必要があります (URL が .../2009/12 のような場合)。
のコピーを使用して機能するソリューションを実際に持っていますwp_get_archives
。これは物事を行う方法であり、私は何も心配しすぎていませんか?
EDIT本当の問題は、Wordpress テーマ用に oen SQL を記述しても問題ないのでしょうか? もしそうなら、そうする際のベストプラクティスは何ですか。