Estoy tratando de implementar un sistema de publicación frontal que muestre datos de taxonomía en varios campos de selección desplegable. Cada uno de los menús desplegables se nombra utilizando el "nombre" $arg
en wp_dropdown_categories()
.
wp_dropdown_categories( array(
'taxonomy' => 'location',
'hide_empty' => 0,
'orderby' => 'name',
'order' => 'ASC',
'name' => 'location',
) );
Como puede ver, la taxonomía es "ubicación" y el nombre seleccionado también es "ubicación".
Luego agrego las variables para cada uno de los menús desplegables de selección de taxonomía, junto con post_title, post_content, etc.
$title = trim( $_POST['wpuf_post_title'] );
$content = trim( $_POST['wpuf_post_content'] );
$tags = wpuf_clean_tags( $_POST['wpuf_post_tags'] );
$customcategory = trim( $_POST['customcategory'] );
$cat = trim( $_POST['cat'] );
$location = trim( $_POST['location'] );
$sale_rental = trim( $_POST['sale_rental'] );
$price = trim( $_POST['price'] );
Finalmente agrego la información adicional en una matriz lista para ser enviada por wp_insert_post()
. Estoy bastante atrapado en si estoy haciendo lo correcto al agregar tax_input
a la matriz como a continuación, ya que esto es lo que entiendo del códice que necesito hacer.
'tax-input' => array(
$location,
$sale_rental,
$price
),
Para que todo termine así:
$my_post = array(
'post_title' => $title,
'post_content' => $content,
'post_status' => $post_status,
'post_author' => $userdata->ID,
'post_category' => array( $_POST['cat'] ),
'post_type' => $customcategory,
'tags_input' => $tags,
'tax_input' => array(
$location,
$sale_rental,
$price
),
);
$post_id = wp_insert_post( $my_post );
Sin embargo, cuando envié la nueva publicación, todos los datos de publicación estándar (y también mi tipo de publicación personalizada) entran bien, pero las taxonomías no. Obviamente estoy haciendo algo mal, pero ¿qué?
fuente
Puede hacerlo usando wp_insert_post , pero también debe especificar la taxonomía
tax_input
, por lo que debería verse así:Lo uso
implode()
para que$location
pueda ser una matriz con múltiples términos.Además, tenga en cuenta que esto solo funciona para taxonomías no jerárquicas. Para las taxonomías jerárquicas, debe proporcionar una matriz en lugar de astring.
fuente
Fuente del problema
Después de investigar un poco sobre este tema, me dijeron que revisara las partes internas (lo cual hice). Como estaba importando publicaciones de una fuente externa como tipo de publicación personalizada, simplemente configuré el usuario en
-1
(en lugar de agregar un usuario bot). El problema con el que me encontré fue quewp_insert_post()
con untax_input
conjunto, internamente verifica la capacidad de un usuario, que obviamente no tiene un usuario no existente.SysBot para el rescate
La solución entonces fue que escribí el complemento SysBot . De esta manera, simplemente podría adjuntar el usuario SysBot (que tiene el rol de editor ) a esa publicación recién creada y todo funcionó de la manera esperada.
fuente