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

Комментариев нет

программное добавление страниц

Создавать страницы или записи — неотъемлемая часть ведения любого блога. Эта операция без проблем производится из панели управления (админки). Переходим на вкладку записи — добавить запись или на вкладку страницы — тоже действие. Удобный текстовый редактор позволяет добавить текст и изображения, так же можно переключится в режим редактирования html и добавить нужную разметку для записи или статической страницы.

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

Полезным моментом, работая с плагинами, будет программное добавление страниц. Во время написания плагина, который будет добавлять некие объекты со своими свойствами (которые в итоге будут обрабатываться), может понадобиться создать страницы, представляющие эти объекты. Как вариант, можно после добавления нового объекта перейти к добавлению страницы. Только в таком случае придется делать двойную работу: написать свойства в панели для добавления объекта, а затем писать их ещё раз при добавлении страницы. Раз уж мы созрели до создания плагина, то делать двойную работу — это не для нас! При добавлении свойств объекта можно добавить всего одну функцию из API WordPress, которая будет создавать страницу. На страницу можно помещать уже имеющиеся свойства объекта, а также можно добавить описание, фотографию и тому подобное. wp_insert_post() — функция для добавления записи или статической страницы. Эта функция принимает 2 параметра:

<?php wp_insert_post( $post, $wp_error ); ?>

Первый параметр — массив данных о записи, передаваемый в базу данных, второй параметр (необязательный) — логическое значение, позволяет получить объект, в случае ошибки. По умолчанию $wp_error установлен в значение false.

Для использования функции нужно подготовить массив данных о записи $post, затем вызвать функцию wp_insert_post().

Список ключей массива $post с кратким описанием:

<?php
$post = array(
	'ID' => [ 'post id' ] //Если хотите обновить существующий пост
	'menu_order' => [ 'order' ] //Если новый пост является страницей, определяет порядок её появления во вкладках.
	'comment_status' => [ 'closed' | 'open' ] // 'closed' статус комментирования.
	'ping_status' => [ 'closed' | 'open' ] // 'closed' Статус обратной связи
	'pinged' => [ ? ] //?
	'post_author' => [ 'user ID' ] //Пользовательский ID автора.
	'post_category' => [ array('category id', <...>) ] //Добавить в несколько категорий.
	'post_content' => [ 'the text of the post' ] //Полный текст страницы.
	'post_date' => [ Y-m-d H:i:s ] //Время создания страницы(поста).
	'post_date_gmt' => [ Y-m-d H:i:s ] //Время создания страницы(поста), в GMT .
	'post_excerpt' => [ 'an excerpt' ] //Для всех ваших нужных выдержек.
	'post_name' => [ 'the name' ] // Имя (slug - название статьи в строке URL) для вашего поста
	'post_parent' => [ 'post ID' ] //Устанавливает родителя новой записи.
	'post_password' => [ ? ] //пароль для записи?
	'post_status' => [ 'draft' | 'publish' | 'pending'| 'future' | 'private' ] //задать статус нового поста.
	'post_title' => [ 'the title' ] //Заголовок поста(записи, статьи).
	'post_type' => [ 'post' | 'page' | 'link' | 'nav_menu_item' | custom post type ] //Вы можете указать обычную статью, страницу, ссылку, элемента меню или других типов записей
	'tags_input' => [ 'tag', 'tag', '...' ] //Для тегов.
	'to_ping' => [ ? ] //?
	'tax_input' => [ array( 'taxonomy_name' => array( 'term', 'term2', 'term3' ) ) ] // Поддержка для созданных таксономий.
);
?>

Минимальный набор ключей для создания страницы это post_title — заголовок и post_content — тело записи, остальные необходимые параметры будут установлены по умолчанию. Значения ключей передаваемых по умолчанию:

<?php
$defaults = array(
	'post_status' => 'draft', 
	'post_type' => 'post',
	'post_author' => $user_ID,
	'ping_status' => get_option('default_ping_status'), 
	'post_parent' => 0,
	'menu_order' => 0,
	'to_ping' =>  '',
	'pinged' => '',
	'post_password' => '',
	'guid' => '',
	'post_content_filtered' => '',
	'post_excerpt' => '',
	'import_id' => 0
);
?>

Созданная таким образом страница или запись, ни чем не отличается от страницы или записи созданной через вкладку «Записи» и «Страницы».

Комментариев нет
 

Оставьте свой комментарий