Описание функции wp_insert_post()
Функция wp_insert_post() используется для добавления новой записи или обновления существующей в базе данных WordPress. Она позволяет задать различные параметры записи, такие как заголовок, содержание, статус, тип записи и многое другое.
Эта функция часто используется в плагинах и темах для создания и управления записями программно.
Параметры
$postarr
Тип: array
Обязательный: Да
По умолчанию: array()
Описание: Массив параметров записи, которые необходимо установить.
Возможные значения:
post_title: Заголовок записи
post_content: Содержимое записи
post_excerpt: Краткое содержание записи
post_status: draft, pending, publish, future, private
post_type: post, page, custom_post_type
post_author: ID автора записи
post_date: Дата создания записи в формате ‘YYYY-MM-DD HH:MM:SS’
$wp_error
Тип: bool
Обязательный: Нет
По умолчанию: false
Описание: Флаг для указания, нужно ли возвращать WP_Error при ошибках.
Возможные значения:
0 / 1
Возвращаемое значение
Тип: int|WP_Error
Описание: Возвращает ID добавленной или обновленной записи, или WP_Error в случае ошибки.
Возможные значения:
• ID записи при успешном выполнении
• WP_Error при возникновении ошибки
Примеры использования
Базовый пример создания новой записи
$post_data = array(
'post_title' => 'Моя новая запись',
'post_content' => 'Содержимое записи...',
'post_status' => 'publish',
'post_author' => 1
);
$post_id = wp_insert_post($post_data);
// $post_id содержит ID новой записи
Проверьте, что ID автора существует
Пример обновления записи с ID 123
$post_data = array(
'ID' => 123,
'post_title' => 'Обновленный заголовок'
);
$result = wp_insert_post($post_data);
// $result содержит ID обновленной записи
ID должен существовать в базе данных
Пример обработки ошибок при создании записи
$post_data = array(
'post_title' => 'Новая запись',
'post_content' => '...',
'post_status' => 'draft'
);
$post_id = wp_insert_post($post_data, true);
if (is_wp_error($post_id)) {
echo 'Ошибка: ' . $post_id->get_error_message();
}
Используйте флаг true для возврата WP_Error
Безопасность
Валидация входных данных: Параметры должны быть проверены перед вызовом функции.
Санитизация: WordPress автоматически очищает данные перед вставкой в базу.
Рекомендации: Используйте функции sanitize_text_field(), wp_kses_post() для очистки пользовательских данных
— Связанные функции
Обновляет существующую запись, аналогично wp_insert_post()
Удаляет запись по ID
— Хуки
Фильтрует данные записи перед вставкой
— Примечания
– Ограничения
Не поддерживает вставку вложений напрямую через параметры.
– Частые проблемы
- Ошибка при отсутствии обязательных полей
- Неверный ID автора приводит к ошибкам