tax_input não está funcionando wp_insert_post

2

Estou usando o wp_insert_post e todos os campos estão funcionando, exceto que tax_input está funcionando. Há algo de errado com o meu código?

$customtax =  array(
'product_link' => $link,
'product_price' => $price,
'product_description' => $desc );
$my_post = array(
  'post_title'    => $title,
  'post_content'  => $content,
  'post_type'     => 'products',
  'tax_input' => $customtax
);

Obrigado antecipadamente

    
por Shawn James 29.11.2015 / 18:35

3 respostas

12

O motivo mais comum é que você executa este código sem o contexto do usuário (cron, etc). Em wp_insert_post() context, o WP verificará se o usuário tem permissões para uma taxonomia. Nenhum usuário é igual a nenhuma permissão é igual a nenhum termo atribuído.

A solução é criar primeiro o post e, em seguida, atribuir termos a ele. Quando os termos são atribuídos explicitamente por meio do método da API (como wp_set_object_terms() ), a verificação de permissões não é executada.

    
por Rarst 29.11.2015 / 19:35
2

Acontece que tax_input não funciona se um usuário não tiver recursos para trabalhar com uma taxonomia personalizada:

wp-includes / post.php (wp_insert_post):

Então, adicione as tampas corretas ou use wp_set_object_terms()

    
por Eduardo Marcolino 27.11.2017 / 14:18
0

Ao usar tax_input para inserção de postagens, certifique-se de usar o termo taxonomy id, já que slugs ou nomes parecem ser descartados

$my_post = array(
'post_title'    => $title,
'post_content'  => $content,
'post_type'     => 'products',
'tax_input' => array('myTax', array(4,458,11478)),
);
    
por user1180105 06.10.2016 / 15:46