Intereting Posts
WP_Query категории, не отображающей первое сообщение Пользовательская таблица базы данных для плагина, не созданного при активации Использование цветовых схем с помощью Color Picker Как обрезать описание в панели администратора для пользовательской таксономии Как проверить, является ли термин родителем другому? Несколько версий RSS-канала? Один с полным содержанием, один с выдержкой Могу ли я создать цикл с несколькими типами сообщений и указать разные $ args для каждого типа сообщения? Отслеживайте акции социальных сетей и показывайте их по почте Роль подписчика – пустая страница как я могу повторно использовать и класс в дочерней теме Как я могу получить многоуровневый первичный блог (URL-адрес или путь) для текущего пользователя? wp_get_attachment_image_src () и нестандартные размеры Динамически добавлять дочерние категории в родительские категории в меню с помощью add_filter Использование запроса WP для поиска по нескольким мета-полям Создан пользовательский тип сообщения, но выбранный шаблон не остался выбранным.

Получение идентификатора сообщения из функции wp_insert_post_data?

Я пытаюсь использовать функцию get_the_tags () из-за «цикла».
Я понимаю, что это может быть достигнуто с использованием идентификатора сообщения, такого как get_the_tags($postID) . Кто-нибудь знает, как я могу получить идентификатор сообщения из функции wp_insert_post_data?

Я пробовал использовать «guid», который предлагается здесь , хотя мне и не повезло. Я также не уверен, что это даже идентификатор сообщения. Любая помощь с этим будет назначена. Благодарю.

РЕДАКТИРОВАТЬ:
Вот код, с которым я работаю:

 function changePost($data, $postarr) { $postid = $postarr["ID"]; $posttags = $postarr['tags_input']; // This doesn't work. $content = $data['post_content']; $subject = $data['post_title']; if($data['post_status'] == 'publish') { sendviaemail($content, $subject, $postid, $posttags); } return $data; } add_filter('wp_insert_post_data','changePost','99',2); 

Как вы можете видеть, я хочу отправить идентификатор сообщения, отправить теги, контент и тему другой функции, называемой «sendviaemail». Все в порядке, но я не знаю, как получить теги из сообщения.

В дальнейшем «10» – это приоритет, который my_func а «2» – количество аргументов, которые принимает my_func . Последнее важно , так как функция add_filter определяет значение по умолчанию как 1, но wp_insert_post_data фильтра wp_insert_post_data отправляет два аргумента. Если вы не установите это как 2, вы не получите второй аргумент.

 add_filter("wp_insert_post_data", "my_func", 10, 2); 

Теперь сделайте свою функцию …

 function my_func($data, $postarr){ //at this point, if it's not a new post, $postarr["ID"] should be set //do your stuff... return $data; } 

EDIT — на основе вашего добавленного кода выше

Если вам не нужно изменять $data post до того, как сообщение будет сохранено, вы используете неправильный крючок.

save_post этого используйте вместо этого действие save_post . Это вызвано после сохранения сообщения, и все таксономии сохраняются. Поэтому вам не нужно беспокоиться о добавлении новых тегов. Он отправляет два аргумента вашей функции: идентификатор сообщения и сам пост в качестве объекта.

 add_action("save_post", "my_save_post"); function my_save_post($post_id, $post){ if ("publish" != $post->post_status) return; $tags = get_the_tags($post_id); //an array of tag objects //call your email func etc... }