save_postアクションに接続するメソッドがあります。WPMLは翻訳プラグインとして使用されています。翻訳が追加され、パブリッシュされ、save_postメソッドが呼び出される方法を見つけようとしています。元の投稿のIDを知るようトリガーされました。save_postの翻訳済みポストにIDを渡す
これまでのところ、これは、投稿が既に公開されていて、更新がトリガーされたときにのみ行うことができます。このために、icl_object_id($ translated_post_id、 'post'、false、 'en' - >英語は元の投稿が常に作成される言語です)のメソッドです。
コメントを見るMSGは文脈で上記を参照してください。
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);
新しい投稿を作成するたびに、私は遊びがあり、 'save_post'フック内でIDを取得しました。しかし、私は物事を変えるかもしれないようにWPMLプラグインを持っていません。質問 - 英語の投稿は他の言語の投稿の親ですか? 'wp_get_post_parent_id()'はこのトリックを行うことができますか? –