¿Cómo crear un post destacado dentro de un tipo de post personalizado?

21 feb 2011, 17:12:25
Vistas: 15K
Votos: 3

¿Se hace exactamente igual que con los posts normales? Yo uso una variable global $featured_cat y la extraigo. ¿Debería hacer lo mismo aquí?

¿O debería usar una taxonomía personalizada asociada? ¿O quizás estoy pensándolo demasiado? ¿Realmente habría beneficio con taxonomías?

¿Cuál es el enfoque correcto aquí, chicos?

2
Comentarios

¿Puedes editar tu pregunta y aclarar qué es tu variable $global_cat? ¿El ID de una categoría específica llamada "Featured"?

Jan Fabry Jan Fabry
21 feb 2011 17:22:22

no, no... en functions.php uso una variable global llamada $featured_cat para establecer una sola categoría destacada, eso es todo. En realidad esa es información trivial de mi parte porque todo lo que realmente quiero saber es cómo establecer una publicación destacada dentro de una serie de contenido de tipo custom post type.

Amit Erandole Amit Erandole
21 feb 2011 17:30:55
Todas las respuestas a la pregunta 2
0

Registrar un tipo de publicación de video y un "Taxonomía destacada" "Selector de meta personalizado destacado"

El tipo de publicación:

function c3m_reg_vid_post() {
            
              $labels = array(
                'name' => _x('Videos', 'post type general name'),
                'singular_name' => _x('Video', 'post type singular name'),
                'add_new' => _x('Añadir nuevo', 'video'),
                'add_new_item' => __('Añadir nuevo video'),
                'edit_item' => __('Editar video'),
                'new_item' => __('Nuevo video'),
                'view_item' => __('Ver video'),
                'search_items' => __('Buscar videos'),
                'not_found' =>  __('No se encontraron videos'),
                'not_found_in_trash' => __('No hay videos en la papelera'), 
                'parent_item_colon' => ''
              );
              $args = array(
                'labels' => $labels,
                'public' => true,
                'publicly_queryable' => true,
                'show_ui' => true, 
                'query_var' => true,
                'show_in_nav_menus' => true,
                'can_export' => true,
                'rewrite' => array('slug' => 'video', 'with_front' => false),
                'capability_type' => 'post',
                'register_meta_box_cb' => 'c3m_video_meta', //Esto es para nuestra meta box personalizada
                'hierarchical' => false,
                'menu_position' => 10,
               'taxonomies' => array('featured'),
                'supports' => array('title', 'editor' 'custom-fields')
              ); 
              register_post_type('video', $args );
}

###La Taxonomía

Pensándolo mejor, usemos un campo personalizado para el video destacado y creemos un cuadro de selección desplegable personalizado para elegir si la publicación está destacada.

Configurar el meta box personalizado:

//hook para añadir un meta box
add_action( 'add_meta_boxes', 'c3m_video_meta' );

function c3m_video_meta() {
    //crear un meta box personalizado
    add_meta_box( 'c3m-meta', 'Selector de Video Destacado', 'c3m_mbe_function', 'video', 'normal', 'high' );
}

function c3m_mbe_function( $post ) {

    //recuperar los valores de metadatos si existen
    $c3m_mbe_featured = get_post_meta( $post->ID, '_c3m_mbe_featured', true );

    echo 'Selecciona sí abajo para destacar el video';
    ?>
    <p>Destacado: 
    <select name="c3m_mbe_featured">
        <option value="No" <?php selected( $c3m_mbe_featured, 'no' ); ?>>De ninguna manera</option>
        <option value="Yes" <?php selected( $c3m_mbe_featured, 'yes' ); ?>>¡Claro que destaca este video!</option>
    </select>
    </p>
    <?php
}

//hook para guardar los datos del meta box
add_action( 'save_post', 'c3m_mbe_save_meta' );
function c3m_mbe_save_meta( $post_ID ) {
    global $post;
    if( $post->post_type == "video" ) {
        if ( isset( $_POST ) ) {
            update_post_meta( $post_ID, '_c3m_mbe_featured', strip_tags( $_POST['c3m_mbe_featured'] ) );
        }
    }
}

}

Aquí está nuestro pequeño y genial selector de videos destacados que acabamos de crear: Descripción de la imagen aquí

Ahora consultemos los videos que están destacados:

$args = array(
    'post_type' => 'video',
    'meta_query' => array(
        array(
            'key' => 'c3m_mbe_featured',
            'value' => 'yes',
            'compare' => 'NOT LIKE'
        )
    )
 );
$query = new WP_Query( $args );
23 abr 2011 08:42:28
3

Lo mismo que con cualquier otro tipo de publicación, realmente... usa una categoría... o cualquier otro método que prefieras (etiqueta, taxonomía personalizada, metadatos/campo personalizado,...).

21 feb 2011 17:42:48
Comentarios

Entendido, pero me encantaría ver un ejemplo usando taxonomía personalizada para un tipo de publicación personalizada de videos.

¿alguien?

Amit Erandole Amit Erandole
21 feb 2011 18:01:32

Creo que las "Publicaciones fijas" no son compatibles con tipos de publicaciones personalizadas. Al menos este ticket relevante fue revertido.

Jan Fabry Jan Fabry
21 feb 2011 18:18:12

@Ian Fabry tienes razón, edité la respuesta.

wyrfel wyrfel
22 feb 2011 05:56:18