WordPress – add_action и save_post

Примеры автоматического внесения изменений в базу данных WordPress при сохранении записи черновика или публикации.

Для изменения содержимого без внесения в базу данных читайте другую инструкцию.

Для того, чтобы запустить какую-нибудь функцию при сохранении поста, нужно воспользоваться хуком:

Более подробно об этом ниже.

1. save_post для основного контента поста

Меняем данные в основной записи поста (post_content). К примеру, перед отправлением данных, скрипт поменяет в контенте одну букву на другую, а затем сохранит содержимое в базе данных.

Функция меняющая контент в WordPress

Запуск функции

При сочетании wp_update_post и save_post, нужна конструкция, которая сначала удаляет action (remove_action), а затем добавляет его. Это необходимо, чтобы избежать бесконечный цикл, который повесит страницу.

2. save_post для произвольных полей

Та же самая функция, но которую будем использовать для произвольных полей.

Функция меняющая контент

Запуск функции

В отличии от предыдущего примера, здесь не нужно удалять action.

3. Сохраняем данные через wp_insert_post_data

Сохраним изменения в контенте записи через функцию wp_insert_post_data.

Надо быть внимательным при сочетании функций add_filter -> wp_insert_post_data и add_action -> save_post. При неправильных приоритетах что-то может не работать.

4. Создадим title записи для WordPress по шаблону

Заголовок будет автоматически формироваться при каждом сохранении записи из атрибутов, которые мы для него подготовим.

Функция создающая title

Запуск функции для Custom Post Types

Функцию выше запустим для произвольных типов записей. Для этого к save_post прибавим название такой записи. В данном случае news.

Привет. Ты находишься на моём сайте. Я разработчик. Здесь я делюсь своими наработками и знаниями. Спрашивай в комментариях, если тебе что-то не понятно или пиши, если есть что добавить.

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи: "WordPress – add_action и save_post".

Ваш e-mail не будет опубликован. Обязательные поля помечены *