Flector

Как программно создать страницу при активации темы?

Созданная программно страница

Одним из очень частых вопросов при создании темы для WordPress является вопрос о программном создании страниц или записей. Многие темы (как и плагины) нуждаются в создании дополнительных страниц или записей для каких-то своих целей, так как это сделать? На самом деле вариантов много. Я предлагаю код, который создает страницы при переключении тем (это удобнее, чем при активации темы). Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

//создание страницы при переключении темы start
function wph_switch_theme() {
    $new_page_title = 'Созданная при активации темы страница';
    $new_page_content = 'Контент страницы';
    $new_page_template = ''; //указывается шаблон страницы (если надо)
 
    $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);
      }
    } 
}    
add_action('switch_theme', 'wph_switch_theme');
//создание страницы при переключении темы end

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


Комментарии (2 комментария)
  1. Явер:

    Добрый день, а как компактно написать код для добавления нескольких страниц? Спасибо.

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!