Categorías de lista para tipos de publicaciones personalizados - WordPress

6

Estoy usando tipos de publicaciones personalizadas en WordPress 3.0 (ahora 3.0.1) para configurar un sistema de directorio personalizado, pero parece que no puedo encontrar una lista de las categorías bajo la taxonomía personalizada similar a la forma en que usarías El wp_list_categories para publicaciones normales. ¿Alguien sabe cómo harías esto en una página? Gracias!

He visto sugerencias para opciones como las siguientes, pero no tuve suerte al incluirlas allí:

<?php
    //list terms in a given taxonomy using wp_list_categories  (also useful as a widget)
    $orderby = 'name';
    $show_count = 0; // 1 for yes, 0 for no
    $pad_counts = 0; // 1 for yes, 0 for no
    $hierarchical = 1; // 1 for yes, 0 for no
    $taxonomy = 'genre';
    $title = '';

    $args = array(
        'orderby' => $orderby,
        'show_count' => $show_count,
        'pad_counts' => $pad_counts,
        'hierarchical' => $hierarchical,
        'taxonomy' => $taxonomy,
        'title_li' => $title
    );
?>
<ul>
<?php wp_list_categories($args); ?>
</ul>
    
pregunta Krzysiek Dróżdż 30.07.2010 - 08:50

4 respuestas

3

¿Está seguro de que llamó a register_taxonomy antes de llamar a wp_list_categories ? Se debe llamar a register_taxonomy en el gancho de acción init , su código de plantilla (supongo que lo usa allí) después de eso.

    
respondido por el Jan Fabry 30.07.2010 - 15:50
2

¡primero debe publicar contenido asociado a su taxonomía [taxonomía personalizada]! ¡Usé tu código en mi proyecto y funciona como un encanto!

    
respondido por el P.M 17.01.2011 - 18:03
0

Si necesita algo más como ordenar, filtrar y paginar, vea mi publicación: enlace

    
respondido por el goksel 02.03.2011 - 09:11
0

según el código de abajo, mi nombre de taxonomía personalizada es "eventcategory", cámbielo según el suyo y agregue el código de abajo y disfrute, creará una lista de términos de taxonomía personalizada (Nota: agregue términos de taxonomía personalizados en admin)

Agregue el código siguiente en el archivo functions.php

<?php 
if ( ! function_exists( 'get_terms_dropdown_ministry' ) ) :
function get_terms_dropdown_ministry($taxonomies, $args){
    $myterms = get_terms($taxonomies, $args);
    $output ="<select name='eventcategory'>";
    $output .="<option value='ministries'>".esc_attr(__('Filter by ministry'))."</option>";

       $queried_object = get_queried_object();
       $term_id = $queried_object->term_id;
       $mterm = get_term( $term_id , $taxonomy );
       $tslug = $mterm->slug;
 //exit;

    foreach($myterms as $term){
        $root_url = get_bloginfo('url');
        $term_taxonomy=$term->taxonomy;
        $term_slug=$term->slug;
        if($tslug == $term_slug){
            $selected = "selected='selected'";
        }else{
            $selected = "";
        }
        $term_name =$term->name;
        $link = $term_slug;
        $output .="<option value='".$link."' $selected>".$term_name."</option>";
    }
    $output .="</select>";
return $output;
}
endif;
?>

Agregue el siguiente código en la plantilla donde desee listar.

<?php
  $event_cat_term = 'eventcategory'; 
  ?>  
  <form action="<?php bloginfo('url'); ?>" method="get">
        <?php
        $taxonomies = array($event_cat_term);
        $args = array('orderby'=>'name','hide_empty'=>true);
        $select = get_terms_dropdown_ministry($taxonomies, $args);

        $select = preg_replace("#<select([^>]*)>#", "<select$1 onchange='return this.form.submit()'>", $select);
        echo $select;
        ?>
            <noscript><input type="submit" value="View" /></noscript>
  </form>
    
respondido por el megi 20.06.2017 - 15:00

Lea otras preguntas en las etiquetas