Intereting Posts
Как разместить теги HTML в контенте от the_content ()? WordPress call_user_func_array () ожидает, что параметр 1 будет действительным обратным вызовом, класс Как динамически создавать субдомен при создании пользователя в WordPress? Проверьте, существует ли Cookie Password Protection Cookie Безопасный способ получить идентификатор сообщения в файле the_title () quicktags "link" кнопка не работает, но все остальные кнопки делают Удалите 'product' и 'product-cateogory' из url-woocommerce Как отображать описания категорий WooCommerce на каждой странице категории без отображения описания родительской категории? Как создать расписание видео по пользовательскому типу сообщений Архивная фильтрация как получить идентификатор пользователя WordPress при регистрации пользователя создание псевдостатической страницы Как отображать самые популярные сообщения из определенной категории на боковой панели? Выход из системы перенаправления на / форумы / Это robots.txt заставляет Google не показывать часть моего контента?

set_post_format, вызванный после wp_update_post при использовании массового редактирования?

EDIT: см. Комментарии ниже. меняя вопрос, чтобы отразить эту новую информацию

Из того, что я понимаю из кода, save_post предназначен для того, чтобы всегда срабатывать после сохранения сообщения (и при создании нового сообщения). Тем не менее, я испытываю некоторое нечетное поведение при использовании Bulk Edit. Используя приведенный ниже код, моя функция синхронизации работает при использовании Quick Edit и Bulk Edit просто отлично, за исключением синхронизации Post Format при использовании только Bulk Edit.

Просто, чтобы быть ясным, единственное, что я синхронизирую, которые доступны с Bulk Edit, это автор, формат сообщения, категории, теги и статус публикации. Все они прекрасно обновляются в WordPress DB, но по какой-то причине только автор, теги и категории синхронизируются с внешней БД, используя мой метод синхронизации. Post Format не синхронизируется, но если я снова запустил действие «Массовое редактирование», даже не меняя ничего, произойдет синхронизация, из-за чего я подумал, что функция save_post запускается до того, как сообщение было сохранено, заставив старые данные синхронизировать, но это не может быть, если остальные работают (ПРИМЕЧАНИЕ. Я обнаружил, что на самом деле это так, за исключением только post_format и установки липкой почты (что меня не волнует)). Вот мой код, расположенный в моем основном файле плагина:

require( plugin_admin_dir . 'plugin-sync.php' ); add_action( 'save_post', 'savethepost', 2000); function savethepost($post_id) { if (get_post_meta($post_id, '_externaldb_post_donotsync', true) == 1) { return; } else { if (get_post_status( $post_id ) != 'publish') { plugin_sync::externaldb_delete($post_id); } else { plugin_sync::externaldb_sync($post_id); } // end if } // end if } 

Поскольку я изначально опубликовал это, я обнаружил, что set_post_format происходит после wp_update_post при использовании Bulk Edit. Как я могу создать работу, чтобы получить новый формат сообщения при запуске моей функции синхронизации? Есть ли еще один крючок, который я могу использовать? Во всяком случае, я надеюсь, что этого достаточно. Спасибо за помощь.

Solutions Collecting From Web of "set_post_format, вызванный после wp_update_post при использовании массового редактирования?"

Я смог решить свою проблему, вызвав set_post_format в моем обратном вызове save_post и убедившись, что его набор и не равен опции «без изменений». Не уверен, что это лучший способ, но он работает.

 require( plugin_admin_dir . 'plugin-sync.php' ); add_action( 'save_post', 'savethepost', 2000); function savethepost($post_id) { if (get_post_meta($post_id, '_externaldb_post_donotsync', true) == 1) { return; } else { if (get_post_status( $post_id ) != 'publish') { plugin_sync::externaldb_delete($post_id); } else { if ( isset( $_REQUEST['post_format'] ) && $_REQUEST['post_format'] != -1 ) { set_post_format($post_id, $_REQUEST['post_format']); } plugin_sync::externaldb_sync($post_id); } // end if } // end if }