Создание или обновление записи в WordPress с помощью функции wp_insert_post(): параметры, примеры, безопасность
Быстрая навигация по записи

Описание функции 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 автора приводит к ошибкам

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

Нужна помощь с WordPress WooCommerce плагинами темой оптимизацией ?

Упрощаем сложное, создаем впечатляющее!
100% без риска
Нет обязательств по найму
Бесплатная оценка
1900 ₽
6 разных демо
Cоздать сайт для блога на WordPress. Идеально подходит для сайта новостей блогов и журналов, обеспечивая комфортное и приятное взаимодействие , полностью на русском языке

Поможем вывести Ваш бизнес на новый уровень!

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил

Добро пожаловать!

Авторизуйтесь, чтобы продолжить

или

Забыли пароль? Восстановить

* Если аккунта у Вас еще нет, то он будет создан автоматически.

* Отправляя данные, вы соглашаетесь с политикой конфиденциальности.

Давайте составим техническое задание!
100% без риска
Нет обязательств по найму
Бесплатная оценка стоимости
Здравствуйте! Я асистент на основе искусственного интеллекта. Вы можете общаться со мной, как с человеком — задавайте вопросы, описывайте свои идеи и требования.

С удовольствием помогу вам составить техническое задание для вашего WordPress проекта. Если Вам нужна техническая поддержка по купленному у нас плагину или шаблону, то создайте тикет в личном кабинете.

Выберите подходящий вариант или опишите свою задачу в свободной форме, и я помогу вам составить четкий план действий, для оценки стоимости нашими разработчиками! 😊