Я создаю новый шаблон для замены существующего. Шаблон называется 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