Intereting Posts
Показать все сообщения в категории. Как масштабировать изображение с одинаковой шириной и высотой без искажений? Является ли Git / GitHub хорошим решением для развертывания WordPress? Заказать результаты WP_Query по значению мета-ключа в пользовательском запросе Не удалось войти на мой сайт WordPress. reauth = 1 цикл перенаправления. Есть какие нибудь идеи как это починить? Как перенаправить логин Пользователь с Mapped Domiain Primary blog Url к оригинальному URL-адресу субсайта Ограничение сообщений на главной странице одной таксономией? Только названия продуктов WooCommerce Найти сообщение, прикрепленное к Пользовательский тип почтового сообщения пустой после сохранения URL-адрес пользовательского поиска WordPress Локализация: мне нужен бэкэнд: английский и интерфейс в определенном языке Включить содержание сообщений в связанных сообщениях в поиске Как добавить пользовательские стили текста в визуальный текстовый редактор? Используйте отдельный шаблон только для домашней страницы.

Как использовать post_title пользовательского типа сообщения как таксономии

У меня есть несколько пользовательских типов сообщений для определения различных типов контента и одного CPT, чтобы настроить, какие поля должны отображаться. Конфигурация CPT также определяет таксономию, поэтому я могу выбрать и выбрать, с какой конфигурацией создается CPT.
Термин таксономии определяется post_title его CPT.

Добавление термина к таксономии не вызывает проблем с подключением к save_post -hook.
Моя проблема заключается в изменении названия таксономии или ее удалении. Ожидаемое поведение заключается в том, что, когда я изменяю post_title моей таксономии, меняется также название термина таксономии exixtig. В это время добавлен только новый.
То же самое с удалением CP, который определяет таксономию.

Есть ли крючок, который на самом деле срабатывает только когда сообщение обновляется, и где я могу получить $post_before и $post_after ?
Если нет, как я могу надежно проверить, обновляется ли сообщение?
save_post -hook запускается при создании сообщения в первый раз, а также при обновлении существующего сообщения, которое немного раздражает.

Solutions Collecting From Web of "Как использовать post_title пользовательского типа сообщения как таксономии"

Есть ли крючок, который на самом деле срабатывает только когда сообщение обновляется, и где я могу получить $ post_before и $ post_after?

Вероятно, вы ищете post_updated hook.

Применение

 add_action( 'post_updated', 'wpse_264720_post_updated', 10, 3 ); function wpse_264720_post_updated( $post_ID, $post_after, $post_before ) { //* Bail if this is an autosave if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } //* Bail if this is a post revision if( wp_is_post_revision( $post_ID ) ) { return; } //* Bail if not the correct post types if( ! in_array( $post_after->post_type, [ 'post-type-1', 'post-type-2' ] ) ) { return; } //* If you add/update/delete posts, remove action to avoid infinite loop remove_action( 'post_updated', 'wpse_264720_post_updated', 10 ); //* Do something useful after the post was updated //* If the post was updated, remove save_post action remove_action( 'save_post', 'wpse_264720_save_post', 10, 3 ); } //* Hypothetical function hooked to save_post add_action( 'save_post', 'wpse_264720_save_post', 10, 3 ); function wpse_264720_save_post( $post_id, $post, $update ) { //* Bail if post was an update if( $update ) { return; } //* Do something useful on save_post }