Last Updated on 2019年1月21日 by 三蔵
TeraPadを使ってPHPのコードを書く場合(他の言語でもそうですが)、文字コードをUTF-8Nに設定してファイルを保存してください。WordPressダッシュボード内の外観→テーマの編集で子テーマのfunctions.php等を見ようとしても真っ白になって見えない場合は、 まず、UTF-8N以外で保存されている可能性を疑います。
TeraPadは言うまでもなくシンプルで優れたエディターですが、導入初期(デフォルト)の文字コードは、Shift-JISに設定されています。そのため、表示→オプション→文字コードのタブを開き、文字コードの設定の中で、初期文字コードをUTF-8Nにしてください。保存文字コードは自動で結構です。
次に、ファイル→文字/改行コード指定保存を選択し、文字コードをUTF-8Nに変更してください。その他の設定はそのままで結構です。対象のPHPファイルを開いた場合に、TeraPadの最下段の右側に「PHP UTF-8N CRLF 挿入」などと表示されていればOKです。
今やWordPressは子テーマ必須ですが、style.cssは表示されても、その他のPHPファイルはうまく表示されない場合があります。UTF-8N以外の文字コードでは、そのようになる場合があることを覚えておきましょう。また、圧縮されたスタイルシートやPHPファイルの場合も同様の症状が出る場合があります。Windows 10ベースで作業をされている方はご注意ください。
<閑話休題&備忘録>
子テーマのスタイルシート style.css (子テーマフォルダ内)
/* Example of style.css
Theme Name: storefront - child theme
Template: storefront
*/
子テーマの独自関数の倉庫 functions.php (子テーマフォルダ内)
<?php
/* Example of functions.php
/* 親テーマのスタイルを子テーマに引き継ぐ */
function theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
/* Error fix for Apple Pay */
function my_shipping_address_fields( $fields ) {
$fields[ 'shipping_phone' ][ 'required' ] = false;
}
add_filter( 'woocommerce_shipping_fields', 'my_shipping_address_fields', 999 );
functions.phpですが、行の最後に ?> を付けないようにしてください。PHPプログラミングではお決まりのターミネータを付けてしまうと、WordPressは正常に動作しなくなります。(皆の知っていることだとは思いますが念のため)
以前は @importを用いていましたが、現在は、上記の上段の例のように記述します。下段の例は、お馴染みのWooCommerceとStripeを国内で使う場合、スマホ等でApple Payの支払い画面でのエラーを回避する場合に用いる定番の修正です。呪文みたいですが、WordPressは本当に便利だなと感心させられます。
上段の記述はアクションフック、下段の記述はフィルターフックと言います。使えるようになるとWordPressカスタマイズの幅が大きく広がります。