Mam metodę związaną z działaniem save_post, WPML jest używany jako wtyczka tłumaczenia, próbuję znaleźć sposób, który po dodaniu tłumaczenia i opublikowaniu jest kliknięty, a metoda save_post jest uruchomione, aby znać identyfikator oryginalnego wpisu.Przekazywanie ID do przetłumaczonego postu w save_post
Do tej pory stwierdziłem, że można to zrobić tylko po opublikowaniu wpisu i uruchomieniu aktualizacji. W tym celu metoda icl_object_id ($ translated_post_id, 'post', false, 'en' -> English jest językiem, w którym oryginalny post będzie zawsze tworzony);
Zobacz komentarz MSG, aby zobaczyć powyższe w kontekście.
function my_project_updated_send_email($post_id, $post, $update){
if ('publish' == get_post_status($post_id) && 'events' == get_post_type($post)) {
if(ICL_LANGUAGE_CODE == 'en'){
// Shortened - Everything works fine
}elseif (ICL_LANGUAGE_CODE == 'it'){
//Get English Language Post ID
$id = icl_object_id($post_id,'post',false,'en');
//MSG: $id returns empty on publish, but returns fine on update
$event_id = get_field('event_id', $id);
if($event_id == ""){
// Shortened - Everything works fine
}
}
}
}
add_action('save_post', 'my_project_updated_send_email', 10, 3);
Miałem grę i otrzymałem identyfikator w haku 'save_post' za każdym razem, gdy tworzyłem nowy post. Ale nie mam wtyczki WPML, więc może to zmienić. Pytanie - czy angielski wpisuje rodzica w inne posty językowe? Czy 'wp_get_post_parent_id()' może pomóc? –