VY
и WPML
кратко суть:
есть сайт построенный на этой теме, сайт мультиязычный 3 языка(инг, рус и укр), при переводе используется WPML (т.к. только он может переводить внутреннюю таксономию и произвольные поля)
задача размещения материалов (вакансий и резюме) при публикации сразу на всех локациях, т.е. при размещении материала он автоматически дублируется на все локации
для этого используется следующий скрипт, который рекомендуют сами разработчики WPML:
add_action( 'wp_insert_post', 'my_duplicate_on_publish' );
function my_duplicate_on_publish( $post_id ) {
global $post;
// don't save for autosave
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return $post_id;
}
// dont save for revisions
if ( isset( $post->post_type ) && $post->post_type == 'revision' ) {
return $post_id;
}
// we need this to avoid recursion see add_action at the end
remove_action( 'wp_insert_post', 'my_duplicate_on_publish' );
// make duplicates if the post being saved
// #1. itself is not a duplicate of another or
// #2. does not already have translations
$is_translated = apply_filters( 'wpml_element_has_translations', '', $post_id, $post->post_type );
if ( !$is_translated ) {
do_action( 'wpml_admin_make_post_duplicates', $post_id );
}
// must hook again - see remove_action further up
add_action( 'wp_insert_post', 'my_duplicate_on_publish' );
}
однако он не совсем корректно отрабатывает, при публикации материалов на разных языках, он может не всегда делать дубли
+ к этому в последующем при одобрении публикации, происходит чрезмерная нагрузка на сервер хоста и вываливает 503 504 ошибки