Intereting Posts

Сделать несколько страниц и установить шаблон / контент для активации темы?

Я хочу сделать около 6 страниц на тему активации темы, и я нашел два способа сделать это на этом сайте.

Один будет делать столько страниц, что нужно, и это все, второе сделает только одну страницу, но позволит мне выбрать шаблон страницы и контент.

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

Вот код, который у меня есть, который будет содержать более одной страницы.

function create_initial_pages() { $pages = array( 'page1' => 'Page 1', 'page2' => 'Page 2', 'page3' => 'Page 3', 'page4' => 'Page 4' ); foreach($pages as $page_url => $page_title) { $id = get_page_by_title($page_title); $page = array( 'post_type' => 'page', 'post_name' => $page_url, 'post_title' => $page_title, 'post_status' => 'publish', 'post_author' => 1, 'post_parent' => '' ); if (!isset($id)) wp_insert_post($page); }; } 

И вот код, который будет делать одну страницу, но задавать контент и шаблон страницы

 if (isset($_GET['activated']) && is_admin()){ $new_page_title = 'Sitemap'; $new_page_content = ' '; $new_page_template = 'sitemap.php'; //ex. template-custom.php. Leave blank if you don't want a custom page template. //don't change the code bellow, unless you know what you're doing $page_check = get_page_by_title($new_page_title); $new_page = array( 'post_type' => 'page', 'post_title' => $new_page_title, 'post_content' => $new_page_content, 'post_status' => 'publish', 'post_author' => 1, ); if(!isset($page_check->ID)){ $new_page_id = wp_insert_post($new_page); if(!empty($new_page_template)){ update_post_meta($new_page_id, '_wp_page_template', $new_page_template); } } } 

Кто-нибудь знает, как это сделать?

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

Solutions Collecting From Web of "Сделать несколько страниц и установить шаблон / контент для активации темы?"

Там может быть лучший способ сделать это, но после тестирования и тестирования я узнал, как заставить код работать 🙂

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

Я не лучший при кодировании php, поэтому может быть лучший способ сделать это, но он работает (после нескольких часов тестирования)

 if (isset($_GET['activated']) && is_admin()){ add_action('init', 'create_initial_pages'); } function create_initial_pages() { $pages = array( // Page Title and URL (a blank space will end up becomeing a dash "-") 'Services' => array( // Page Content // Template to use (if left blank the default template will be used) 'Services Content'=>'page-bottom-sidebar.php'), 'Prices' => array( 'Prices Content'=>'page-wide.php'), 'FAQ' => array( 'FAQ Content'=>' '), ); foreach($pages as $page_url_title => $page_meta) { $id = get_page_by_title($page_url_title); foreach ($page_meta as $page_content=>$page_template){ $page = array( 'post_type' => 'page', 'post_title' => $page_url_title, 'post_name' => $page_url_title, 'post_status' => 'publish', 'post_content' => $page_content, 'post_author' => 1, 'post_parent' => '' ); if(!isset($id->ID)){ $new_page_id = wp_insert_post($page); if(!empty($page_template)){ update_post_meta($new_page_id, '_wp_page_template', $page_template); } } } } } 

Ну, я надеюсь, что это поможет кому-то!