私はどのようにしてプラグインからページテンプレート(そしてCSSや画像のような全ての関連するアセット)を正しく登録するかを考え出しています。基本的に、私はテーマの外側に住みたいランディングページを作成しました、それで私はそれを複数のウェブサイトで使うことができます。
私のコードは次のとおりです。
add_filter( 'page_template', 'custom_page_template' );
function custom_page_template( $page_template )
{
$page_template = dirname( __FILE__ ) . '/custom-page-template.php';
return $page_template;
}
しかし、私はWordPressの中にページテンプレートを見ていません。
あなたはpage_template
が何をするのか誤解しています。 どこかに "現れる"ような、そしてあなたが使える新しいテンプレートを作成することはありません。テーマによって提供されたpage.php
テンプレートを置き換えます。
私はあなたが欲しいのはtemplate_redirect
だと思います:
function custom_page_template( $page_template ) {
if (is_home()) {
get_header();
echo 'do stuff';
get_footer();
}
}
add_filter( 'template_redirect', 'custom_page_template' );
またはtemplate_include
:
function custom_page_template( $page_template ) {
if (is_home()) {
$page_template = plugin_dir_path( __FILE__ ) . 'custom-page-template.php';
return $page_template;
}
}
add_filter( 'template_include', 'custom_page_template' );