Cómo llamar a categorías de taxonomía personalizadas con códigos cortos

2

Acabo de tener una pregunta resuelta aquí: Cómo mostrar publicaciones de una sola categoría dentro de una taxonomía personalizada

Ahora me pregunto cómo tomar este código:

<?php
    $args = array(
        'posts_per_page' => 1,
        'post_type' => 'inventory',
        'tax_query' => array(
            array(
                'taxonomy' => 'inventory-category',
                'field' => 'slug',
                'terms' => array( 
                    'bulk-racks' 
                )
            )
        )       
    );
query_posts( $args ); while ( have_posts() ): the_post();

// do stuff here
?>

<?php endwhile; ?>

y llámelo usando códigos cortos, por ejemplo, para mostrar la categoría de racks masivos usando esto o algo similar [inventory-category="bulk-racks"]

Sé cómo crear un shortcode básico, pero no sé cómo escribir la función que devolvería las publicaciones según la entrada del nombre de la categoría del shortcode.

Una vez más, cualquier ayuda sería muy apreciada.

    
pregunta maikunari 12.05.2011 - 06:10

1 respuesta

5

Echa un vistazo a shortcode post de la categoría para obtener una idea y aquí está el complemento con la menor Modificaciones para llamar a su tipo de publicación y taxonomía:

// Taxonomy category shortcode
function cat_func($atts) {
    extract(shortcode_atts(array(
            'class_name'    => 'cat-post',
            'totalposts'    => '-1',
            'category'      => '',
            'thumbnail'     => 'false',
            'excerpt'       => 'true',
            'orderby'       => 'post_date'
            ), $atts));

    $output = '<div class="'.$class_name.'">';
    global $post;
    $args = array(
        'posts_per_page' => $totalposts, 
        'orderby' => $orderby,
        'post_type' => 'inventory',
        'tax_query' => array(
            array(
                'taxonomy' => 'inventory-category',
                'field' => 'slug',
                'terms' => array( $category)
            )
        ));
    $myposts = NEW WP_Query($args);


    while($myposts->have_posts()) {
        $myposts->the_post();
        $output .= '<div class="cat-post-list">';
        if($thumbnail == 'true') {
        $output .= '<div class="cat-post-images">'.get_the_post_thumbnail($post->ID, 'thumbnail').'</div>';
        }
        $output .= '<div class="cat-content"><span class="cat-post-title"><a href="'.get_permalink().'">'.get_the_title().'</a></span>';
        if ($excerpt == 'true') {
            $output .= '<span class="cat-post-excerpt">'.get_the_excerpt().'</span>';
        }
        $output .= '</div>
            <div class="cat-clear"></div>
        </div>';
    };
    $output .= '</div>';
    wp_reset_query();
    return $output;
}
add_shortcode('inventory-category', 'cat_func');

uso :

simplemente coloque este código abreviado en su publicación o páginas

[inventory-category totalposts="3" category="bulk-racks" thumbnail="true" excerpt="true" ]
  • totalposts - su número total de publicar en la pantalla. el valor predeterminado es -1
  • categoría - categoría slug. usar coma para múltiples babosas
  • miniatura: establezca verdadero si desea mostrar la miniatura. el valor predeterminado es falso
  • extracto: establezca verdadero si desea mostrar excertp. el valor predeterminado es verdadero
  • orderby - tu publicación ordenará por. post_date por defecto. consulte enlace para obtener detalles
respondido por el Bainternet 12.05.2011 - 08:13

Lea otras preguntas en las etiquetas