Фильтры – Получение Идентификатора Сообщения Из Функции Wp_Insert_Post_Data?

  • Автор темы ElvisniGtFtF96
  • Обновлено
  • 21, Oct 2024
  • #1

Я пытаюсь использовать функцию

 sendviaemail 
from outside the 'loop'.
Я понимаю, что этого можно достичь, используя идентификатор сообщения, например 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); . Does anyone know how I can get the post ID from inside a 'guid' функция?

Я пробовал использовать wp_insert_post_data which is предложено здесь, хотя мне не повезло. Я также не уверен, что это даже идентификатор сообщения. Любая помощь в этом будет оценена. Спасибо.

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

get_the_tags($postID)

Как видите, я хочу отправить идентификатор сообщения, теги сообщения, контент и тему другой функции под названием get_the_tags() . Everything is okay, except I don't know how to get the tags from the post.

#посты #фильтры #id

ElvisniGtFtF96


Рег
25 Oct, 2024

Тем
65

Постов
189

Баллов
534
  • 25, Oct 2024
  • #2

Далее «10» — это приоритет, который

 
 
 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...

}
 
gets called and '2' is the number of arguments that save_post принимает. Последнее важно, поскольку $data function defines the default as 1, but the 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; } перехватчик фильтра отправляет два аргумента. Если вы не установите значение 2, вы не получите второй аргумент.

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

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

wp_insert_post_data

РЕДАКТИРОВАТЬ --- на основе добавленного вами кода выше.

Если вам не нужно редактировать сообщение add_filter before the post is saved then you're using the wrong hook.

Используйте my_func action hook instead. This gets called after the post is saved and all the taxonomies are saved. So you don't have to worry about whether new tags have been added. It sends two arguments to your function: the ID of the post and the post itself as an object.

my_func
 

Ollipuhh


Рег
28 Nov, 2004

Тем
60

Постов
188

Баллов
508
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно