Intereting Posts
Выходные данные, такие как установщик / обновление плагинов WP. Как получить пул страницы при редактировании ее в WP admin? Запрос на изменение персонализированного типа сообщения с определенной категорией Как получить данные плагинов WordPress в PHP с помощью API-интерфейса плагина? Невозможно получить /% postname% / permalinks, 404 на всех ссылках wpdb get_results () возвращает только 2 строки Создание пользовательского пути к архиву Как подключить пользовательские таксономии к пользовательским типам сообщений и заставить постоянные ссылки работать? Как восстановить файл или тему? Запросить пользователей для загрузки аватара при регистрации Получение thubnails для предыдущих сообщений Проблема с несколькими, динамическими, боковыми панелями – первая боковая панель не работает должным образом WordPress публикует сообщение, не перенаправляя на страницу редактирования Ссылка на изображение для публикации Несколько таксономий для одной персонализированной почты

Шаблоны страниц в подкаталогах и автогенераторе

Это может быть стрельба в темноте, но здесь идет …

Я знаю, что, начиная с wp 3.4, я могу добавить шаблон страницы aka page-template.php в подпапки. (ref: Шаблоны страниц в подкаталогах ), что отлично и помогает мне сделать большой заказ в переполненной настраиваемой папке тем.

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

но:
выбор / настройка шаблона страницы не работает, если страница находится в подпапке.

Сценарий, который я использую:

$start_number = 2; $iim_pages = array('tools', 'clients-manager', 'task-manager'); foreach($iim_pages as $page) { $page_title = ucwords(str_replace('-', ' ', $page)); $page_filename = 'page-'.$page.'.php'; $page_check = get_page_by_title($page_title); $new_page = array( 'post_type' => 'page', 'menu_order' => $start_number, 'post_title' => $page_title, 'post_content' => '', 'post_status' => 'publish', 'post_author' => 1, ); if(!isset($page_check->ID)){ $new_page_id = wp_insert_post($new_page); update_post_meta($new_page_id, '_wp_page_template', $page_filename); // THIS WORKS! : add_post_meta($new_page_id, 'testmeta', $page_filename); } $start_number++; } 

Я пробовал много вариантов, но кажется, что wp не устанавливает шаблон страницы
если вне подпапки

может ли кто-нибудь предложить решение?

Solutions Collecting From Web of "Шаблоны страниц в подкаталогах и автогенераторе"

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

Поэтому вместо:

 update_post_meta($new_page_id, '_wp_page_template', $page_filename); 

У вас будет:

 update_post_meta( $new_page_id, '_wp_page_template', 'newpagetemplate.php' ); update_post_meta( $new_page_id, 'sagive_page_type', $page ); 

Затем внутри вашего нового шаблона страницы:

 $type = get_post_meta( get_the_id(), 'sagive_page_type', true ); get_template_part( 'parts/type', $type ); 

Предоставление вам папки с файлами type.php , type-tools.php т. Д. type-tools.php т. Д.

Но даже более надежно, вы предложили, чтобы эти шаблоны страниц отображали пользовательские типы сообщений. Если это так, вы можете использовать archive.php для этого и использовать собственные архивы типа post. Это упростит ваш код и позволит вам использовать archive-tools.php т. Д., А также удалить необходимость создания любых страниц для начала.