発見!WordPressでテンプレートを切り替える時のアクションフック

発見!WordPressでテンプレートを切り替える時のアクションフック

Kazuya Takato

Kazuya Takato

特定のときだけ、テンプレートを切り替えたい。そんなことを考えていたある日 コードをよんでたら、フックがみつかったのでメモ。 今回は、jqueryの$.ajaxで呼ばれたときは、ajax-xxx.phpが呼ばれるようにしてみました。

add_filter("template_include", "test_template");

// $templateには読み込むテンプレートのパスが来ます
function test_template($template){

	// jqueryからのXMLHttpRequestでない場合なんもしない
	if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
		return $template;
	}

	if(strpos($template , STYLESHEETPATH) !== FALSE) {
		$template_name = str_replace(STYLESHEETPATH . '/', "", $template);
		$template = STYLESHEETPATH . '/ajax-' .$template_name;
	} else if(strpos($template , TEMPLATEPATH ) !== FALSE){
		$template_name = str_replace(TEMPLATEPATH . '/', "", $template);
		$template = TEMPLATEPATH . '/ajax-' .$template_name;
	}

	return $template;
}

もっと良い方法があるような気もするけど、各テンプレートにif文書くよりはマシな気がする

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

Kazuya Takato
Kazuya Takato 取締役 COO 兼 CTO / DX事業本部長 / 高遠 和也

1983年生まれ。SIerとしてのキャリアをスタートし、JavaやC#を中心に多岐にわたる開発プロジェクトにエンジニアとして参加。その経験を活かし、LIGを創業。バックエンドおよびフロントエンドエンジニアとしての深い知識と経験をもとに、多様なプロジェクトに従事。現在は、取締役COO兼CTO、DX事業本部長として、社内の体制やルールの最適化、AI技術の推進など、経営戦略の一翼を担う。

このメンバーの記事をもっと読む
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL