Intereting Posts
url переписать .htaccess расширение на permalink Отобразить конкретное имя и ссылку на проект типа Jetpack Проблемы активации SSL / HTTPS на моем сайте wordpress Как использовать shortcode в js url Два почти идентичных пользовательских типа поля – один работает, другой – нет. Что может вызвать это? Каков предпочтительный способ добавления пользовательских файлов javascript на сайт? Rewrite Rule for Post «Subpage», с разбивкой на страницы Как подключиться после отправки электронной почты пользователя? Возможно ли добавить меню пользовательского типа сообщений в качестве другого настраиваемого подтипа типа публикации Крюк, добавленный к значению, кажется, называется несколько раз Найти сообщения в соответствующей области таксономии сортировать результаты поиска по новейшим Пользовательские типы сообщений Не подтверждены для шаблона date.php Исключить сообщения с пустым post_content в wp_query Невозможно переключить тему после активации

Позволяя wordpress решить, какой шаблон и страница использовать на основе условия

Я действительно не уверен, как / что спросить, но я стараюсь изо всех сил …

Могу ли я сказать, как WordPress (возможно, в файле index.php):

Если A Затем загрузите страницу Y своим шаблоном соответствия (который вы всегда так хорошо знаете, что это такое), и если B загружает страницу Y своим шаблоном соответствия (который …)?

Я имею в виду что-то вроде, может быть, установка первой страницы по моему состоянию … пусть WordPress затем задает запрос и правильный шаблон и все такое.

Другой способ сказать:

Я хочу сказать WordPress: вы знаете, что если бы я настраивал переднюю страницу (через настройки администратора -> панель чтения) на страницу под названием «page1», вы бы показывали ее на первой странице, обрабатывая данные страницы, шаблон и все необходимое для основной URL. теперь я хочу, чтобы вы делали то же самое, но если что-то происходит (скажем, пользователь вошел в систему или независимо от того, какое состояние и условие «если» выполняется) сделайте это с другой страницей под названием «страница13», и если произойдет другая вещь с другими страницами "page5" …

Я не уверен, что это отличный способ, но пока это то, что у меня есть:

  1. Задайте настройку главной страницы в WordPress сообщениям, а не статической странице , поэтому WordPress будет использовать файл index.php .

  2. В файле index.php напишите:

 if (something) { global $post; $post = get_post( "the post id" ); setup_postdata( $post ); include('page-template-file.php'); } else { global $post; $post = get_post( "the other post id" ); setup_postdata( $post ); include('page-other-template-file.php'); } в if (something) { global $post; $post = get_post( "the post id" ); setup_postdata( $post ); include('page-template-file.php'); } else { global $post; $post = get_post( "the other post id" ); setup_postdata( $post ); include('page-other-template-file.php'); } в if (something) { global $post; $post = get_post( "the post id" ); setup_postdata( $post ); include('page-template-file.php'); } else { global $post; $post = get_post( "the other post id" ); setup_postdata( $post ); include('page-other-template-file.php'); } 

Примечание: вам нужно иметь дело с другими страницами с шаблоном unique.php и так … иначе с помощью этого решения вы загружаете одну из этих страниц для любой страницы вашего сайта.

Чтобы переписать шаблон по умолчанию, вы можете использовать template_include hook, который можно использовать следующим образом:

 add_filter('template_include', 'my_custom_template'); function my_custom_template($original_template) { if ($something) { return include_wordpress_template(get_template_directory() . $my_custom_template); } else { return $original_template; } } 

Здесь вы можете найти дополнительную информацию о крючке.

ОБНОВИТЬ

Чтобы изменить полученные данные, вы можете изменить запрос, используя для pre_get_posts крюк pre_get_posts следующим образом:

 function my_pre_get_posts($query) { global $post; if ($query->is_main_query() && $your_condition) { $query->set( 'post_type', 'your_post_type' ); $query->set( 'p', $some_special_id ); } else { return $query; } } add_action( 'pre_get_posts', 'my_pre_get_posts' );