web-dev-qa-db-ja.com

それはいつ関数が関数template.phpに対してページテンプレートに置くのが適切ですか?

私は自分のコードと現在のテーマを改善したいのですが、私はWordpressをカスタム投稿タイプ、メタデータ、カスタマイズされたユーザー認証、そしてその他多数の項目で拡張しました。

これらの関数のいくつかはfunctions.phpファイルにありますが、関連するテンプレートファイルに直接置いています。このテンプレートファイルが特定の機能を使用する唯一のファイルであるため、最初にこれを実行した理由はほとんどありません。

しかし、私はスピードとセキュリティのためにベストプラクティスと考えられるものを知りたいのですが?職業はなんですか?

3
Tom Geoco

それがあなたのサイトのためのカスタムテーマであるならば、機能を動かしても大きなスピードやセキュリティの向上はありません。

一方、テーマを配布したいのであれば、ページテンプレートファイルに最小限のphpだけを入れて、残りの機能を別のファイルにまとめることをお勧めします。私は基本的なテーマがfunctions.phpにあるようにテーマのファイルをセットアップし、別の整理されたファイルに残りが好きです。 _ s はこれをうまく処理します。関数をテンプレートファイルから移動する理由は、カスタマイズや管理が簡単になるためです。あなたがテンプレートを複製する必要があるなら、あなたは二度と機能を複製することになりません。

非表示機能をプラグインに入れて、簡単に無効化および管理することもできます。詳細については、 この回答 を参照してください。

4
grappler

明らかに、あなたがあなたの親テーマを更新すれば、どんなテンプレート変更も失われるでしょう。

子テーマのfunctions.phpファイルを使うほうがよいのは、親テーマを更新するときにカスタムコーディングが安全であるためです。

あなたは決してあなたの親テーマの中のファイルを修正するべきではなく、常に子テーマを使用するか、あなたがカスタムコーディングを追加できるプラグインを作成するべきです。

WordPress /テーマ固有のフィルタを使用して既存の親テーマおよびWordPress機能の出力を変更することがベストプラクティスです。

また、テーマ固有の/ WordPressアクションフックを使用して、子テーマ関数ファイルを介して機能やコンテンツを追加することもできます。

これに加えて、単にあなたの子供のテーマにテンプレートを追加したり、あなたの親のテーマからそれらをコピーしてあなたの子供のテーマでそれらに変更を加えることができます。本当に、それはユーザーがフックやフィルターの使い方や簡単な解決策を探す方法を十分に理解していないことを意味します。

0
Brad Dalton