コンテンツにスキップ
GLANZ. CREATIVE WORKS / GLOBE TAILS
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

PHP のコードスタイル

Prettier による PHP の自動整形と、WordPress の慣習に合わせた命名、テンプレートでの PHP の書き方

PHP の整形は Prettier に任せ、命名などの整形以外のルールは WordPress の慣習に合わせます。

自動整形

wp-env-starter では、PHP も CSS・JavaScript と同じく Prettier(@prettier/plugin-php)で整形します。 設定はテンプレートの .prettierrc.json にあり、インデントは半角スペース 2 つ、文字列はダブルクォートです。

整形はコミット時に lefthook が自動で実行します。 push 前には pnpm lint で、整形漏れがないことを確認してください。

命名

命名は WPCS に合わせます。

対象 形式 例
関数・変数 スネークケース theme_enqueue_assets()、$post_id
クラス 単語の先頭を大文字にしてアンダースコアでつなぐ Theme_Menu_Walker
定数 大文字のスネークケース VITE_DEV_ORIGIN
ファイル 小文字のケバブケース post-types.php
独自のフック名 小文字のスネークケース theme_before_footer
CSS・JavaScript のハンドル名 小文字のケバブケース theme-script

テーマで新しく定義する関数には、theme_ の接頭辞を付けます。 WordPress の関数はグローバル空間で定義されるため、接頭辞がないとプラグインの関数と名前が衝突し、致命的なエラーになる場合があります。

テンプレートでの書き方

HTML と PHP の切り替え

HTML を出力するテンプレートでは、制御構文にコロンを使う代替構文を使います。 波括弧だと、どの } がどの if や foreach を閉じているのかを HTML の中で追いにくくなるためです。

<?php if (have_posts()): ?>
  <ul class="post-list">
    <?php while (have_posts()): the_post(); ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endwhile; ?>
  </ul>
<?php endif; ?>

ロジックとマークアップの分離

値の取得や加工はテンプレートの先頭(またはヘルパー関数)でまとめて行い、HTML の中では変数を出力するだけにします。 HTML の中に条件分岐や関数呼び出しが入り組むと、表示崩れの原因を探しにくくなるためです。

出力時のエスケープ

変数を出力するときは、必ず出力先に合ったエスケープ関数を通します(セキュリティ)。

このページは役に立ちましたか?