Listar Categorias para Tipos de Postagens Personalizadas - WordPress

6

Estou usando tipos de postagem personalizados no WordPress 3.0 (agora 3.0.1) para configurar um sistema de diretório personalizado, mas não consigo encontrar como listar as categorias sob a taxonomia personalizada semelhante à que você usaria o wp_list_categories para postagens normais. Alguém sabe como você faria isso em uma página? Obrigado!

Eu já vi sugestões de opções como as seguintes, mas não tive sorte ao colocá-las lá:

<?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>
    
por Krzysiek Dróżdż 30.07.2010 / 08:50

4 respostas

3

Tem certeza de que ligou para register_taxonomy antes de chamar wp_list_categories ? register_taxonomy deve ser chamado no gancho de ação init , seu código de modelo (suponho que você o use lá) depois disso.

    
por Jan Fabry 30.07.2010 / 15:50
2

você precisa postar algum conteúdo associado à sua taxonomia [taxonomia personalizada] primeiro! Eu usei o seu código no meu projeto e funciona como um encanto!

    
por P.M 17.01.2011 / 18:03
0

Se precisar de algo mais como encomendar, filtrar e paginar, consulte o meu post: enlace

    
por goksel 02.03.2011 / 09:11
0

de acordo com o código abaixo meu nome de taxonomia personalizada é "eventcategory", altere isso conforme o seu e adicione o código abaixo e aproveite, ele criará uma lista de seleção de termos de taxonomia personalizados (Observação: adicione termos de taxonomia personalizados em admin)

Adicione o código abaixo no arquivo 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;
?>

Adicione abaixo o código no modelo em que você deseja 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>
    
por megi 20.06.2017 / 15:00