Pregunta

Tengo tres tipos de publicación personalizados, cada uno con alrededor de 5 taxonomías y 2 de los tipos de publicación personalizados comparten dos taxonomías.

Casi tengo todo configurado para publicar desde la parte delantera que no sea la parte de un menú desplegable para mostrar el post_types.

Como ahora es la publicación de front -end funciona, pero las URL están rotas porque no tienen el tipo de publicación personalizado en ellas, he buscado por todas partes y puedo encontrar cero en el listado de tipos de publicaciones personalizadas ... ¿se puede hacer?

Saludos Martin

Editar: solo tropezé con esto en Codex,,

¿Fue útil?

Solución

Perdón por eso se siente un poco raro respondiendo a la propia pregunta, pero aquí vas ...

En primer lugar, declare la variable: (CustomCategory)

global $userdata;

$errors = array();

$title      = trim($_POST['wpuf_post_title']);
$customcategory      = trim($_POST['customcategory']);
$content    = trim($_POST['wpuf_post_content']);
$tags       = wpuf_clean_tags($_POST['wpuf_post_tags']);
$cat        = trim($_POST['cat']);

En segundo lugar, la matriz para agregar la publicación:

 if (!$errors) {
    $frontend_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
    );

    $post_id = wp_insert_post($frontend_post);

y finalmente cree el dropdrown desde la función get_post_types:

<?php 
          $args=array(
                     'public'   => true,
                     '_builtin' => false
                     ); 
                $output = 'names';
                $operator = 'and';
                $post_types=get_post_types($args,$output,$operator); 

          echo '<select name="customcategory">';
          foreach ($post_types  as $post_type ) {
          echo '<option value="'. $post_type.'">'. $post_type. '</option>';
}echo '</select>';
?>
Licenciado bajo: CC-BY-SA con atribución
scroll top