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