Создание или обновление записи в 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% без риска
Нет обязательств по найму
Бесплатная оценка
5900 ₽
Автомобильный каталог
Шаблон авто сайта на русском языке, преображающий онлайн-сервисы для автодилеров и профессионалов автобизнеса. Стильный и интуитивно понятный дизайн обеспечивает быстрый поиск автомобиля мечты

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

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

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

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

или

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

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

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

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

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

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