Зарегистрировать шаблон страницы из плагина


Я пытаюсь понять, как правильно зарегистрировать шаблон страницы (и все связанные с ним ресурсы, такие как 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.

Author: dcolumbus, 2015-06-30

1 answers

Вы неправильно понимаете, что делает 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' );
 1
Author: s_ha_dum, 2015-07-01 13:20:19