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

Время чтения: 3 мин.
Краткое предисловие
Если вы хотите, чтобы ваша>тема или плагин (последний вариант предпочтительнее чисто идеологически) самостоятельно создавали новые материалы(несколько страниц), можете использовать приведенный ниже код. Просто добавьте его на свой блог, и вы получите готовый результат.
Код плагина-примера
<?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, если не создается новый пост, иначе получите просто идентификатор записи.
Редактор: AndreyEx

Хотим перепостить часть статьи на https://impulse-design.com.ua/ Вы не против?
ок