Функцию "wp_insert_post" можно использовать даже на небезопасных данных, потому что она обеззараживает все входящие параметры, используя функцию "sanitize_post".
При использовании функции происходит вызов всех фильтров и событий, которые привязаны к созданию публикации. Читайте подробнее в статье "Фильтры и события (хуки) в WordPress"
Функция "wp_insert_post" имеет два аргумента. Первый - это массив, который описывает новую публикацию: заголовок, текст, id автора и т.п. Второй параметр - это логический флаг (true/false) вывода ошибок:
$post_id = wp_insert_post( $data, $wp_error );
Функция во вращает следующие значения:
- ID новой записи - при успешном добавлении записи функция возвращает ID новой записи
- "0" - ноль при появлении ошибки, если параметр $wp_error равен "false"
- "WP_Error" объект - если произошла ошибка и параметр $wp_error "true"
<php
$data = array(
'post_title' => 'Заголовок публикации',
'post_content' => 'Содержание публикации',
'post_status' => 'publish', // статус: publish - опубликовано
'post_author' => 1, // id автора публикации
'post_category' => array( 3,4,9 ) // id рубрик, в которых находится публикация
);
$post_id = wp_insert_post( $data );
echo $post_id; // распечатает id добавленной публикации
Рассмотрим ключи массива, описывающего публикацию функции:
Название | Описание |
---|---|
ID | ID существующей публикации, если происходит обновление |
post_title | Заголовок публикации. |
post_excerpt | Цитата записи. |
post_name | Ярлык записи (используется в URL адресе). |
menu_order | Порядок в меню (для прикрепленных страниц). |
comment_status | Статус комментировани: 'closed' - нельзя комментировать, 'open' - можно. |
ping_status | Статус пингов. 'closed' - пинги выключены, 'open' включены. |
post_author | ID автора записи |
post_content | Полный текст записи. |
post_date | Дата и время создания записи. Формат: Y-m-d H:i:s. |
post_date_gmt | Дата и время создания записи. Формат: Y-m-d H:i:s (по Гринвичу). |
post_parent | ID родительской записи. |
post_password | Пароль для просмотра записи. |
post_status | Статус записи: 'draft' - черновик, 'publish' - опубликовано, 'pending' - на утверждении, 'future' - запланирован на публикацию в будущем, 'private' - видно только администратору. |
post_type | Тип публикации: 'post' - обычная запись, 'page' - страница, 'link' - ссылка, 'nav_menu_item' - элемент навигации. |
post_category | Массив из рубрик, в которым привязана публикация. |
tags_input | Массив из тегиов публикации. |
tax_input | Массив из таксономий публикации. |