Вручную установить шаблон с помощью PHP в WordPress

Я создаю новый шаблон для замены существующего. Шаблон называется featured.php, и я собираюсь заменить его featured-new.php

Я хочу передать переменную «new» в querystring, а затем, если new переменная присутствует, она будет использовать файл featured-new.php.

Как я могу это сделать? Есть ли тег, чтобы указать странице использовать указанный шаблон?

Я бы использовал плагины с theme switcher такие как этот, а затем настраивал, присутствует ли он только с URL-адреса или переключается на макет.

Кроме того, взгляните на это: Тема переключения

Я предполагаю, что это шаблон страницы, верно? Это означает, что у него есть комментарий «Имя шаблона:» вверху и его используется, когда появляется страница, и имя было выбрано из меню «Шаблон страницы» в редакторе. Если это так, то были на одной странице … (каламбур был неизбежен.)

Если это так, вам нужно отфильтровать 'page_template'.

 function filter_page_template($template){ /** * Lets see if the current template is featured.php, * and if 'new' is set in the query string */ if(isset($_GET['new']) && $template == locate_template('featured.php')) { /** * If so, we'll set the custom template name... * You can skip this temporary variable and just pass this * directly to 'locate_template()'. */ $new_template = 'featured-new.php'; /*... and now we use locate_template to find the actual path and return that. */ return locate_template($new_template); } else { /** * Otherwise, if 'new' is not set * or the current template is not 'featured.php', * We should just return the original $template value undisturbed. */ return $template; } } add_filter('page_template', 'filter_page_template'); 

Я не понимаю, как вы хотели использовать «новый», звучало так, будто хотел получить параметр строки запроса, который был вызван новым, и посмотреть, просто ли он был установлен. Так вот что я сделал. Если вы имели в виду что-то другое, вам нужно соответствующим образом изменить этот бит логики.

Я думаю, что самый простой способ сделать это – это если / else текущий планшет включить новый храм или нет

в featured.php

 if($_GET['show'] == 'new') { include('featured-new.php'); } else { //this is the full featured.php code } в if($_GET['show'] == 'new') { include('featured-new.php'); } else { //this is the full featured.php code } 

Вы также можете найти дополнительную информацию в иерархии шаблонов WordPress