Если вы хотите автоматизировать наполнение сайта, импортировать данные из CSV или создать кастомный плагин — вам понадобится функция wp_insert_post(). Это главный инструмент разработчика для добавления записей, страниц и любых типов постов программным путем.
В этой статье мы разберем, как правильно использовать функцию, какие параметры передавать и как избежать типичных ошибок.
Что такое wp_insert_post() и зачем она нужна
wp_insert_post() — это встроенная функция ядра WordPress, которая позволяет добавлять или обновлять записи в базе данных без захода в админку.
Она пригодится для:
-
Импорта товаров в интернет-магазин (WooCommerce)
-
Парсинга и автоматической публикации новостей
-
Создания пользовательских отчетов или архивов
-
Миграции контента с другой CMS
Важно: Функция полностью соблюдает все хуки (action/filter), так что плагины и темы корректно реагируют на созданные записи.
Синтаксис и основные параметры
Функция принимает один аргумент — массив с параметрами записи.
wp_insert_post( array $postarr, bool $wp_error = false );
| Параметр | Тип | Описание |
|---|---|---|
post_title |
string | Заголовок записи |
post_content |
string | Текст содержимого (HTML допускается) |
post_status |
string | publish, draft, pending, private |
post_type |
string | post, page или название вашего CPT |
post_author |
int | ID автора (по умолчанию — текущий пользователь) |
post_category |
array | Массив ID категорий |
tags_input |
array|string | Массив меток или строка через запятую |
meta_input |
array | Произвольные поля (ключ => значение) |
Важно: Поля post_title и post_content не должны быть пустыми, иначе запись не создастся.
Примеры использования wp_insert_post()
$new_post = array(
'post_title' => 'Мой первый программный пост',
'post_content' => 'Это содержимое создано через wp_insert_post()',
'post_status' => 'draft',
'post_author' => 1,
);
$post_id = wp_insert_post( $new_post );
if ( ! is_wp_error( $post_id ) ) {
echo 'Пост создан. ID: ' . $post_id;
} else {
echo 'Ошибка: ' . $post_id->get_error_message();
}
Функция wp_insert_post() — это мощный и гибкий инструмент для программного управления контентом в WordPress. Освоив её, вы сможете:
- Автоматизировать рутинные задачи по добавлению постов
- Строить сложные импортеры и парсеры
- Разрабатывать кастомные решения для клиентов