Intereting Posts
обновленный плагин 'plugin-list-category-post' добавляет не связанный элемент Как остановить вывод в счете «wp_term_taxonomy», когда сообщение удалено? Первичное редактирование с настраиваемыми полями? Проблема добавления / обновления галереи на статическую переднюю страницу Ошибка при переадресации входа – $ user-> Разработка плагинов: невозможно обновить настройки с помощью нескольких разделов настроек Функция для захвата определенных идентификаторов изображений из медиа-библиотеки. как добавить класс css в ящики продукта li, для img, добавить кнопку корзины, decs, price … Предоставление большего количества элементов в комментариях через functions.php Перенаправление после обновления пароля JQuery При нажатии кнопки удаляется короткий код wp-cli post создает проблемы с медиа-импортом Как удалить? Wp-mce из источника страницы? WP REST API V2 – Получить дополнительную страницу с полным пулем (URL / Path) Данные метаданных, добавленные в перенаправление заголовка

Установить шаблон страницы для всех страниц?

Я знаю, что шаблон страницы установлен в wpdb как meta_key = _wp_page_template и meta_value = template.php.

Как я могу написать сценарий SQL для установки каждого сообщения, где post_type = 'page' для определенного шаблона?

EDIT: на основании приведенных ниже комментариев я добавлю детали, которые я желаю «нормализовать» мои страницы, поскольку некоторые из них настроены на пользовательские шаблоны.

Solutions Collecting From Web of "Установить шаблон страницы для всех страниц?"

EDIT. Как отмечено в комментариях к вашему вопросу, наилучшим подходом было бы просто отредактировать файл page.php . Если вы хотите, чтобы ВСЕ ваши страницы имели один и тот же шаблон страницы, и не нужно делать ничего лишнего, чтобы установить его таким образом, совершенно очевидно, почему это хорошая идея. 🙂

Затем вы можете создать собственный шаблон страницы для страниц, для которых вы не используете шаблон страницы по умолчанию. Это в значительной степени то, для чего была создана эта система!


Если вы настаиваете, хотя:

Шаблон страницы каждой страницы фактически хранится как настраиваемое поле, вы можете перебирать каждый пост в своем коде и настраивать шаблон страницы таким образом, вместо того чтобы идти и делать это в базе данных вручную. Смотри ниже:

 add_action( 'admin_init', 'set_page_templates' ); function set_page_templates(){ foreach( get_posts('post_type=page&posts_per_page=-1') as $page ) { $current_template = get_post_meta( $page->ID, '_wp_page_template', true ); $new_template = 'new_template.php'; if( $current_template != $new_template ) update_post_meta( $page->ID, '_wp_page_template', $new_template ); } } 

Может быть более эффективное действие, чтобы включить это, так как это будет выполняться при каждой загрузке страницы администратора. Возможно, вы можете запустить это один раз, а затем удалить код, он должен работать нормально. Кроме того, вы можете подключить его к действию save_post (которое фактически вернет идентификатор страницы, который вы сохраняете для себя как один из аргументов вашей функции), чтобы автоматически изменять шаблон страницы, если это не то, что вы хотите, чтобы оно сохранялось сообщение или страница (конечно, пропуская foreach в этом случае).

Другой параметр для установки шаблонов – через фильтры шаблонов . Вы можете добавить свою собственную логику для принудительного создания определенных шаблонов в любых условиях, которые вы указали.

 function wpd_page_template_filter( $templates = '' ) { // the passed $templates contains a single or array of templates that apply to this query // get queried page object $this_page = get_queried_object(); // check $this_page meta key, check slug, check parent, etc.. return locate_template( 'my-custom-template.php' ); } add_filter( 'page_template', 'wpd_page_template_filter' );