1

ホームページとして使用するページテンプレートを作成しました。ホームページには3つの列が含まれ、各列には特定のmeta_key値を持つページの抜粋が含まれます。

このコードは機能しますが、列ごとに毎回繰り返され、異なるのはmeta_keyの値だけです。

私はまだこれに慣れていないので、PHPとHTMLの両方を含むこのコードを分離する適切な方法がわかりませんか?

  • PHPのincludeステートメントを使用して?
  • そのコードを含むfunctions.phpに関数を作成することによって?
  • Wordpressのget_template_part関数を使用して?
  • 他に何かありますか?
4

1 に答える 1

2

結局、あなたが使いたいのは、

  1. 他の人にとって理解しやすい
  2. あなたに便利

あなたはDRYを理解しました-自分自身を繰り返さないでください-原則。これはとても良いです。将来何かを変更する必要がある場合、同じものを複数の場所で変更する必要はありません(便利ではありません)。したがって、複数の異なるテンプレートファイルで同じことを繰り返す場合は、を使用できますget_template_part。この関数はinclude()廃止されます。

メタキーを引数として取る関数にコードを貼り付けることができます。これはかなりきちんとした解決策になるでしょう。とても便利です。問題は、他の誰かがこのテンプレートを読んだ場合、それはあなたが作成したカスタムのものであるため、その関数がどのように見えるかすぐにはわからず、それを理解するためにその関数を見つける必要があるということです。

したがって、おそらく最善の策はforeachループを使用することです。

foreach( array( 'meta_key1', 'meta_key2' ) as $key ) {
// Your code
}

コードが長すぎず、ほとんどの場合、情報をあまり処理せずに表示することを目的としている場合、これは良い解決策になる可能性があります。ただし、これは、生成する出力が隣接している場合にのみ機能します。それ以外の場合は、関数を作成する必要があります。その場合は、functions.phpに配置する必要があります。

コードが情報の多くの処理を行う場合は、おそらくそれをfunctions.phpに配置する必要があります。テンプレートファイルは、ものを表示するためのものであり、PHPの経験がほとんどない設計者が読み取ることができる必要があります。

(ところで、関数にPHPとHTMLの両方が含まれていることは間違いではありません。すべてのテンプレートタグは本質的にそのような関数です。WordPressは真に厳密な分離を推奨していません。)

于 2013-03-01T12:19:33.980 に答える