Nishiki Pro テーマにはテンプレートファイルを読み込む get_template_part を拡張させた nishiki_pro_get_template_part という独自の関数があります。
今回は nishiki_pro_get_template_part を使ってテンプレートファイルの読み込み先を変更する方法を紹介します。
この方法を使えば、特定のページで出力する HTML を自分好みにカスタマイズすることもできます。
ただし、カスタマイズの難易度がそこそこ高いので、ご理解いただいた上で読み進めてください。
ディレクトリ構成
今回は、以下のようなディレクトリ構成で「nishiki-pro-custom」という名前のプラグインを作成したと仮定します。
- wp-content
- plugins
- nishiki-pro-custom // プラグイン
- templates
- parts
- archive
- post.php // 差し替えるファイルを用意する
- index.php // ←ここにコードを書く
サンプルコード
プラグインディレクトリ内の index.php に以下のようにコードを書きます。
if ( ! function_exists( 'nishiki_pro_custom_archive_post_template' ) ) {
function nishiki_pro_custom_archive_post_template( $file_path ){
if( is_archive() ){ // 表示するページがアーカイブページの場合のみ処理する
// 「プラグインディレクトリ/templates/parts/archive/post.php」ファイルが存在すれば差し替える
$file_path = dirname( __FILE__ ) . '/templates';
}
return $file_path;
}
add_filter( 'nishiki_pro_get_template_part_path_parts/archive/post', 'nishiki_pro_custom_archive_post_template' );
}
コード解説
nishiki_pro_get_template_part_{$path} フィルターを使って、テンプレートの読み込み先をプラグインディレクトリ内に変更しています。is_archive() はワードプレスの関数です。
フィルター名をつける時のコツ
上記のサンプルコードを例にすると nishiki_pro_get_template_part( 'parts/archive/post' ) のように「テーマディレクトリ/parts/archive/post.php」ファイルを読み込んでいる場合は「nishiki_pro_get_template_part_{$path}」フィルターの「{$path}」を「parts/archive/post」に置き換えて使えば OK です。
つまり、Nishiki Pro テーマ内で nishiki_pro_get_template_part を使ってテンプレートを読み込んでいる箇所はフックでいくらでも自分好みに差し替えてカスタマイズできる、ということです。
例えば「特定のページの HTML の出力を変えたい」なんて要望はわりとあると思いますので、機会があれば活用ください。
テーマ開発者の私も制作案件などで結構この方法を使っています。
WordPress テーマ Nishiki Pro
「ウェブサイト運営に本当に必要とされる機能」をテーマ内にまとめて搭載したワードプレステーマです。
ブロックエディター機能を強化し、これまでのワードプレスでは難しかったコンテンツが簡単に作れます。
ブログ、ポートフォリオ、コーポレートサイト、ビジネスサイト、オンラインショップなど、様々な目的のウェブサイトに対応できるテーマです。
最新情報をチェック!
Nishiki / Nishiki Pro テーマに特化した情報を「にしきちゃん」がお伝えします😀
- リリース情報
- 新機能の紹介
- 便利な使い方
- 開発中の機能紹介
- 導入事例
- あるある日常ネタ
など