Intereting Posts
Количество почтовых сообщений категории день за днем Если (категория / тег отмечен), то (display header2php) Виджеты последних сообщений Paginate Проектирование плагина, который использует iFrame для обработки данных в admin Сведение к минимуму запросов к базе данных при использовании расширенных настраиваемых полей Не удалось войти в систему из-за неправильного пароля сразу после регистрации? Есть ли способ добавить пользовательский текст + ссылку над результатами поиска для разных поисков? Перенаправить старые строки запроса на новые URL-адреса SEO Как включить файлы ядра в плагин нагрузка больше не будет отображаться Строка данных тега отформатирована Странно получить изображение сообщения Исключение категории из цикла не работает Как связать образ с термином taxononmy и опубликовать его на главной странице? Бесконечная прокрутка

Получение идентификатора сообщения из функции 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». Все в порядке, но я не знаю, как получить теги из сообщения.

Solutions Collecting From Web of "Получение идентификатора сообщения из функции wp_insert_post_data?"

В дальнейшем «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... }