Intereting Posts
Получить тип сообщения на странице редактирования Запретить редакторам редактировать / удалять учетные записи администратора WordPress Theme Validator? Только авторы Contributor (не публикуют) Другие сообщения Список категорий Сообщения: выведите миниатюру и заголовок сообщения в одной ссылке Как отключить разбивку на страницы? Редактирование / удаление пользовательских типов сообщений через веб-страницу (не admin) Изменение языка одной страницы удалите объявление в корзину и просмотрите еще кнопку, если цена продукта пуста Программно менять шаблоны сообщений? Заказывать сообщения (по всему сайту) по дате метаданных Как синхронизировать теги между сообщениями, которые связаны через Posts 2 Posts? Как использовать внешний API-интерфейс REST POST в WordPress? Отображает только определенное количество сообщений, в зависимости от количества сообщений, доступных в запросе как отображать описание woocomerce каждой категории в wordpress?

Фильтр пользовательских плагинов

Я создаю пользовательский плагин, и в моем файле плагина у меня есть следующее:

add_filter('page_template', 'load_tq_templates'); function load_tq_templates() { if (is_page( 'transport-quote-1' )) { if ( $overridden_template = locate_template( 'tq-1.php' ) ) { // locate_template() returns path to file // if either the child theme or the parent theme have overridden the template load_template( $overridden_template ); } else { // If neither the child nor parent theme have overridden the template, // we load the template from the 'templates' sub-directory of the directory this file is in load_template( dirname( __FILE__ ) . '/templates/tq-1.php' ); } } } 

Я создал подпапки «тем» в моем каталоге плагинов, где у меня есть файл tq-1.php выглядит так:

 <?php get_header(); ?> <div class="wrapper"> <h1>THIS IS MY CUSTOM THEME FOR PAGE tq-1</h1> <div id="content"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php the_content(); ?> <?php endwhile; endif; ?> </div> </div> <?php get_footer(); ?> 

Проблема в том, что файл действительно загружается на соответствующую страницу, НО после загрузки загружается также загружаемая page.php активной темы, поэтому я в основном получаю дублированный контент на переднем конце, когда сначала загружается tq-1.php , а затем page.php темы page.php загружается второй.

Как избежать page.php темы из моего шаблона?

page_template – это фильтр, а не действие. В частности, он фильтрует путь к файлу шаблона, который будет включен.

Так что действительно вы не должны ничего загружать в этом обратном вызове (это слишком рано). Вместо этого просто верните путь к файлу.

 add_filter( 'page_template', 'load_tq_templates' ); function load_tq_templates( $template ) { if ( is_page( 'transport-quote-1' ) ) { if ( $overridden_template = locate_template( 'tq-1.php' ) ) { $template = $overridden_template; } else { // If neither the child nor parent theme have overridden the template, // we load the template from the 'templates' sub-directory of the directory this file is in $template = dirname( __FILE__ ) . '/templates/tq-1.php'; } } return $template; }