web-dev-qa-db-ja.com

のベストプラクティス PHP

Single.phpなどのテンプレートを作成していて、phpをhtmlでラップしている場合は、次の方法が最適です。

  1. PHPの起動と停止例えば

     <h1 class="post-tilte"><?php the_title(); ?></h1>
     <p class="post-content"><?php the_content();?></p>
    

または

  1. HTMLをエコーし​​てPHPをエスケープする例えば ​​-

    <?php echo '<h1 class="post-title">' . get_the_title() . '</h1>
    <p class="post-content"' . get_the_content() . '</p>
    

私は前もって決められた選択をしないで、自分自身が両方をしているのに気づきません。

11
Joey Urbansoul

WordPressはコーディング言語とレイアウト言語のミックスを使用しているため、それは問題になるだけです。あなたがテンプレート言語、構文を使用する場合、このトピックは関係ありません。しかしあなたの質問に。 htmlのようなもっとレイアウトの言語のテーマにあなたの例のソースを使用するなら、私は最初のものを好む - それはデザイナーとユーザーにとってはるかに読みやすい、そこにマークアップを読んでください。マークアップに関する概要を作成したり、開始タグや終了タグ​​などを作成したりする方が簡単です。

プラグインにインクルードする場合、より多くのロジックとフローを持つコードを実装するのが簡単な2番目の例です。主なトピックはマークアップではなくphpです。これはソースに表示されるはずです。テンプレートファイルでこのマークアップを除外し、マークアップをロジックから分離することを検討することもポイントです。

10
bueltge

追加情報と同じです。 WordPressには PHPハンドブックとコーディング標準に関するベストプラクティスに関するHTML があり、CSS、JavaScript、およびアクセシビリティにも役立ちます。あなたはそれらが問題に深く入るために役立つと思うかもしれません。

8
Nicolai

上の答えで説明したように、最初の方法はデザイナーにやさしいです、そして2番目の方法はhtmlタグの数がほんの少ししかないプラグインと複雑なphpコードの場合にはおそらく適しています。

しかし、ほとんどのWordPressテンプレートタグはbeforeafterパラメータを持っていて、関数呼び出しの中であなたのHTMLコードを使うのにより適しています。

たとえばthe_titleの場合、3つのパラメータがあります。

the_title( $before, $after, $echo );

あなたは以下のようなパラメータの前後にあなたのHTMLを渡すことができます

the_title( '<h2 class="title">', '</h2>', true );

この方法の利点は

  • デザイナーフレンドリー
  • タイトルが空の場合、HTMLタグを印刷しません
  • 単純なテンプレートファイルだけでなく、複雑なPHPコードでも使用できます。
5
Anwer AR

2行のコードしか表示されていないので、あなたのコード例は限界的ですが、全体的な答えは非常に状況次第であると思います。 HTMLブロック内でPHP行を使用している場合は、最初の方法を使用してください。 PHPブロック内でHTML行を使用している場合は、2行目に進みます。

0
Nadav

最初の方法は次の理由で好ましいです。

  • これは、固定HTMLレイアウトと動的コンテンツを明確に区別しています。
  • 読みやすいです。
  • 通常、文字列内のhtml属性は認識されないため、ほとんどのエディタでは構文の強調表示によってサポートされています。
  • HTMLとPHPを混同しすぎるのを防ぎます。

上記の理由により、最初の方法ではコードが理解しやすくなり、保守も容易になります。

私の経験では、状況によっては、2番目の方法を使用する方が便利なようです。しかし、それは通常弱い(ソフトウェア)設計によるものであり、警告サインとして見られるべきです。

0
not2savvy