ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

WordPress и программное создание страницы

Краткое предисловие

Если вы хотите, чтобы ваша>тема или плагин (последний вариант предпочтительнее чисто идеологически) самостоятельно создавали новые материалы(несколько страниц), можете использовать приведенный ниже код. Просто добавьте его на свой блог, и вы получите готовый результат.

Код плагина-примера

<?php
/*
Plugin Name: Page Creator
Plugin URI: http://andreyex.ru/wordpress-i-programmnoe-sozdanie-stranicy/
Description: Пример программной генерации страницы.
Author URI: http://andreyex.ru
Author: AndreyEx.
Version: 2.0.0
*/
 
$pce_name = "Page Creator";
     
function pce_code_add_admin() {
  global $pce_name;
  add_options_page(__('Настройки'), $pce_name, 'edit_themes', basename(__FILE__), 'pce_code_to_admin');
}
 
function pce_code_to_admin() {
  global $pce_name;
?>
 
<div class="wrap"><?php
    screen_icon();
    echo '<h2>'.__('Настройки').': '.$pce_name.'</h2>';
    if (isset($_POST['save'])) {
        $np = array(
            'slug' => 'example-gen',
            'title' => 'Заголовок статьи',
            'content' => "Содержимое статьи"
        );
        if ( wp_insert_post( array(
                'post_title' => $np['title'],
                'post_type'    => 'page', // тип записи
                'post_name'     => $np['slug'], // URL, будут совпадения? WordPress сам все исправит.
                'comment_status' => 'closed', // закрыть комментарии
                'ping_status' => 'closed', // запретить пинги
                'post_content' => $np['content'],
                'post_status' => 'publish', // опубликовать статью
                'post_author' => 1, // кто будет автором
                'menu_order' => 0 // положение пункта в меню
            )) > 0 ) :
            echo '<div id="setting-error-settings_updated" class="updated settings-error"><p><b>'.__('OK.').'</b></p></div>';
        endif;
    } ?>
    <form method="post">
      <div class="submit">
          <input name="save" type="submit" class="button-primary" value="<?php echo __('Добавить новую страницу'); ?>" />
      </div>
    </form>
</div><?php
}
 
add_action('admin_menu', 'pce_code_add_admin');
 
?>

 

Небольшое примечания

Собственно, нужный функционал находится между 26 и 41 строчками кода включительно. Функция возвращает 0, если не создается новый пост, иначе получите просто идентификатор записи.

WordPress и программное создание страницы

Exit mobile version