Сообщение, созданное в корзине по значению настраиваемого поля в мультисайте

У меня есть мультисайты, которые были настроены article имеет отношение к другим постам в сети по настраиваемому полю alphanumeric_id Этот ключ уникален для каждого блога, а соответствующие посты генерируются программно add_action('wp_insert_post', 'bZive_create_TranslatedContent', 15, 3);

function bZive_trash_TranslatedContent($post_id){


        // Get the current blog id
        $original_site_id   = get_current_blog_id(); 
        $postTypes          = array('profile', 'article');
        $postType           = get_post_type( get_the_ID() );
        $randomString       = get_post_meta( get_the_ID(), 'alphanumeric_id', true );   

        $args = array(
            'public'     => true,
            'limit'      => 500
        );  

        $sites = wp_get_sites($args);
        $tests = array();

        foreach ($sites as $site) {
            switch_to_blog($site['blog_id']);

            if( get_current_blog_id() != $original_site_id and get_current_blog_id() != 1 ){




                $args = array(
                    'post_type'  => 'article',
                    'post_status' => array(
                            'publish', 'draft', 'pending','auto-draft', 'future', 'private'
                        ),
                    'meta_query' => array(
                        array(
                            'key'     => 'alphanumeric_id',
                            'value'   => $randomString ,
                            'compare' => '=',
                        ),
                    ),
                );

                $posts = new WP_Query($args);

                if( $posts->have_posts() ) {
                  while( $posts->have_posts() ) {
                    $posts->the_post();


                        // Move the post to trash
                        wp_trash_post(get_the_ID());


                  }
                } 
                wp_reset_postdata();


            }

            restore_current_blog();
        }



}
add_action('trash_post','bZive_trash_TranslatedContent',10,3);

Что я хочу заархивировать: если я перемещу одно сообщение в корзину - все связанные сообщения также должны быть перемещены в корзину. Но почему-то посты не удаляются - я тестировал WP_Query, он получает правильные посты, но они не удаляются.

1 ответ

Наконец-то работает!

function bZive_trash_TranslatedContent($post_id){


    // Get the current blog id
    $original_site_id   = get_current_blog_id(); 
    $postTypes          = array('profile', 'article');
    $postType           = get_post_type( get_the_ID() );
    $randomString       = get_post_meta( get_the_ID(), 'alphanumeric_id', true );   

    if (in_array( $postType, $postTypes ) and empty( get_post_meta( $post_id, 'del_translatedContent', true ) ) ) {

        add_post_meta($post_id, 'del_translatedContent', 'true');

        $args = array(
            'public'     => true,
            'limit'      => 500
        );  

        $sites = wp_get_sites($args);
        $tests = array();

        foreach ($sites as $site) {
            switch_to_blog($site['blog_id']);

            if( get_current_blog_id() != $original_site_id and get_current_blog_id() != 1 ){




                $args = array(
                    'post_type'  => 'article',
                    'post_status' => array(
                            'publish', 'draft', 'pending','auto-draft', 'future', 'private'
                        ),
                    'meta_query' => array(
                        array(
                            'key'     => 'alphanumeric_id',
                            'value'   => $randomString ,
                            'compare' => '=',
                        ),
                    ),
                );

                $posts = new WP_Query($args);

                if( $posts->have_posts() ) {
                  while( $posts->have_posts() ) {
                    $posts->the_post();


                        // Move the post to trash
                        wp_trash_post(get_the_ID());
                        add_post_meta(get_the_ID(), 'del_translatedContent', 'true');

                  }
                } 
                wp_reset_postdata();


            }

            restore_current_blog();
        }



    }


}
add_action('wp_trash_post','bZive_trash_TranslatedContent',1,3);
Другие вопросы по тегам