WordPress wp_insert_post no inserta etiquetas
Frecuentes
Visto 12,530 veces
7
Estoy tratando de insertar una publicación con este código:
$my_post = array(
'post_type' => "essays",
'post_title' => 'TEST 3',
//'post_content' => $content,
'post_status' => 'draft',
'post_author' => 1,
//'post_category' => $cat,
'tags_input' => 'TQM,tag',
);
$post_id = wp_insert_post($my_post);
Todo funciona bien excepto las etiquetas, no inserta ninguna de ellas. ¿Alguna idea?
5 Respuestas
7
Utilice el wp_set_object_terms()
función:
http://codex.wordpress.org/Function_Reference/wp_set_object_terms
wp_set_object_terms($post_id , $arrayoftags, $name_of_tag_taxonomy, false);
Buena suerte
contestado el 21 de mayo de 17 a las 18:05
3
Tu tipo de publicación es essays
. Los tipos de publicaciones personalizadas no admiten etiquetas de forma predeterminada. Tendrás que agregar un tags
taxonomía para ellos.
http://codex.wordpress.org/Taxonomies
http://codex.wordpress.org/Function_Reference/register_taxonomy
contestado el 03 de mayo de 12 a las 16:05
No estoy muy seguro de eso... No se menciona en codex.wordpress.org/Function_Reference/wp_insert_post de todos modos. Tengo curiosidad por saber si funcionará o no para el TS. dennis hunink
¡Bonita! Simplemente lo pasé por alto. Deberias hacer eso. - dennis hunink
Tengo la taxonomía de etiquetas registrada. También puedo agregar etiquetas manualmente a través de wp-admin, pero en el código no funciona... - yedidel
0
Para insertar la publicación con etiquetas y categorías, haga esto
$pid=wp_insert_post($new_post);
wp_set_post_terms( $pid, $arrayoftags);
wp_set_post_categories( $pid, $arrayofcategories );
entonces $pid es la identificación de la publicación, básicamente, primero inserta la publicación sin etiquetas o categorías y la función devuelve la identificación de la publicación que luego puede usar para insertar las etiquetas y categorías, cada una con su función respectiva, si observa el código fuente de wp_insert_post notará que la función funciona de manera diferente para los tipos de publicaciones personalizadas, no lo investigué más porque no quiero piratear el código, ya que hay una mejor solución al usar las funciones integradas
Respondido 20 ago 12, 23:08
0
hola encontre esta respuesta en algun sitio y tal vez te sirva
//first get the term (I used slug, but you can aslo use 'name'), see: http://codex.wordpress.org/Function_Reference/get_term_by
$term = get_term_by( 'slug', 'your custom term slug', 'your custom taxonomy' );
//then get the term_id
$term_id = $term->term_id;
//Use 'tax_input' instead of 'post_category' and provide the term_id:
'tax_input' => array( 'your taxonomy' => $term_id )
Espero que ayude.
respondido 23 nov., 12:15
-1
Las etiquetas y las categorías de publicaciones deben ingresarse como una matriz, incluso si es solo una. Entonces 'tags_input' => 'TQM,tag'
debiera ser 'tags_input' => array('TQM,tag')
contestado el 03 de mayo de 12 a las 18:05
También lo probé con una matriz... no funciona. Además, esto no es un problema con las etiquetas nuevas, ya que usar las antiguas tampoco funciona. yedidel
La solución de la matriz es correcta pero debería ser 'tags_input' => array('TQM', 'tag')
(cada etiqueta es un elemento de matriz). - idInundación
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php wordpress or haz tu propia pregunta.
¿Devuelve algún error? No estoy seguro, pero ¿podría ser que haya un problema con las etiquetas que no existen? - Dennis Hunink
No, intenté insertar etiquetas existentes y tampoco funciona. yedidel