Wordpress: tax_input non funziona se non sei connesso

Salve a tutti,
oggi vedremo come, su script personalizzati,
dentro un ciclo di wp_insert_post,
non funzioni la f() 'tax_input';






Questo perchè WP ha dei controlli di sicurezza che ne proibiscono l'uso;
quindi se ad esempio dovete lanciare uno script di importazione da cron,
noterete che non vengono inseriti i 'tax_input', mentre se lo lanciate quando siete conessi
da backend, questi vengono inseriti.


SOLUZIONE:
bisogna dichiarare questi valori con la f() wp_set_object_terms

Esempio pratico:



         /* Custom Post Type */  
            $post_args = array(
                'post_title'    => $title,
                'post_content'    => $content,
                'post_status'    => 'publish',
                'post_type'        => 'showroom',
                'post_author'    => 1,
                'tax_input'    =>  array (
                               'vehicle-types' => $category,
                               'manufacturers' => array ($brand, $model)

                                )                 
            );
            // insert post
            $post_id = wp_insert_post( $post_args );
           


 ---------> vanno dichiarati in questo modo: 


         $terms = array($brandName, $modelName);
        wp_set_object_terms($post_id, $terms, 'manufacturers');

        $terms2 = array($categoryName);
        wp_set_object_terms($post_id, $terms2, 'vehicle-types');