3

私は、Worpress のデフォルト テーマのカスタマイズに取り組んでいます。アーカイブ リンクのフォーマットの問題に直面しました。

デフォルトのテーマはwp_get_archives、 で定義された関数を使用しますgeneral-template.php。関数の出力はカスタマイズ可能ですが、私には十分にカスタマイズできません。

基本的にその特定の機能をファイルに再実装することで、やりたいことをすべて達成できfunctions.phpますが、Wordpress が更新されると回帰の問題が発生するため、そうすることをためらっています。wp_get_archivesDBクエリの構築や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 を記述しても問題ないのでしょうか? もしそうなら、そうする際のベストプラクティスは何ですか。

4

1 に答える 1

1

アクティブなテーマ内のファイルで定義すると、functions.php通常、回帰の問題は発生しません。

ただし、デフォルトのテーマを変更する場合、これは当てはまりません。その後、wordpress のソース全体をアップロードして WordPress をアップグレードすると、functions.php が上書きされます。

これを解決するには、既定のテーマを含むフォルダー全体を複製します。新しいコピーで、style.css2 行目 (テーマ名) を編集して、新しいテーマ名に変更します。

Theme Name: WordPress Default

Wordpress には追加のテーマが表示され、思いのままに編集できます。

于 2010-01-12T11:30:32.923 に答える