Как переместить все сообщения со всеми связанными языками в пользовательский тип сообщения со всеми связанными тегами? - PullRequest
0 голосов
/ 08 января 2019

Мне нужно переместить сообщения с тегом «тематические исследования» в пользовательский тип сообщения «Учебные примеры». Также у меня установлен плагин WPML lang и много постов на других языках с тэгом 'case study'. Поэтому я должен сохранить все зависимости, соединения для перевода и теги и перенести все это в пользовательский тип записи. Я написал функцию, чтобы сделать это, но кажется, что она работает не правильно. Я буду признателен за любую помощь и мысли о том, как я могу это сделать!

function set_cpt_case_studies(){
$args = array(
    'post_type' => 'post',
    'tag' => 'case-studies',
    'posts_per_page' => -1,
    'suppress_filters' => true
);
$loop = get_posts($args);

$current_lang = apply_filters( 'wpml_current_language', null);
$languages = apply_filters('wpml_active_languages', null);
unset($languages[$current_lang]);

foreach ($loop as $post) {

    $post_array = array();
    $post_array['ID'] = $post->ID;
    $post_array['post_type'] = 'case_studies';

wp_update_post( wp_slash($post_array) );

    foreach ($languages as $lang => $value) {
    if($translated_id = apply_filters('wpml_object_id', $post->ID, 'post', false, $lang)) {

    $post_array = array();
    $post_array['ID'] = $translated_id;
    $post_array['post_type'] = 'case_studies';

        wp_update_post( wp_slash($post_array) );

        $wpml_element_type = apply_filters( 'wpml_element_type', 'case_studies' );
        $get_language_args = array('element_id' => $post->ID, 'element_type' => 'case_studies' );
        $original_post_language_info = apply_filters( 'wpml_element_language_details', null, $get_language_args );
        $set_language_args = array(
        'element_id'    => $translated_id,
        'element_type'  => $wpml_element_type,
        'trid'   => $original_post_language_info->trid,
        'language_code'   => $lang,
        'source_language_code' => $original_post_language_info->language_code
    );

    do_action( 'wpml_set_element_language_details', $set_language_args );
    }
    }
}
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...