como exibir todas as categorias no wordpress?
usei este código:
$categories = wp_get_post_categories(get_the_ID());
foreach($categories as $category){
echo '<div class="col-md-4"><a href="' . get_category_link($category) . '">' . get_cat_name($category) . '</a></div>';
}
Mas devolva apenas uma categoria, Como posso obter todas as Categorias?
3 answers
No código que nos deu, está seleccionado as Categorias seleccionadas para o post específico get_the_ID () está a fazer essa parte. No entanto, seria melhor usar outra função get_ categories () https://developer.wordpress.org/reference/functions/get_categories o que você gostaria de fazer assim:
$categories = get_categories();
foreach($categories as $category) {
echo '<div class="col-md-4"><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></div>';
}
Também pode passar por argumentos para ser mais específico (se necessário) - ver https://developer.wordpress.org/reference/functions/get_terms/ para mais detalhes sobre o que você pode passar por
Você também pode usar wp_ list_ categories e passar argumentos para ele para mostrar apenas o que você precisa. Uma lista completa de argumentos pode ser encontrada no codex: https://developer.wordpress.org/reference/functions/wp_list_categories
Isto irá indicar todas as Categorias (mesmo que estejam vazias) indentadas para indicar a hierarquia.
$args = array(
'child_of' => 0,
'current_category' => 0,
'depth' => 0,
'echo' => 1,
'exclude' => '',
'exclude_tree' => '',
'feed' => '',
'feed_image' => '',
'feed_type' => '',
'hide_empty' => 0,
'hide_title_if_empty' => false,
'hierarchical' => true,
'order' => 'ASC',
'orderby' => 'name',
'separator' => '<br />',
'show_count' => 0,
'show_option_all' => '',
'show_option_none' => __( 'No categories' ),
'style' => 'list',
'taxonomy' => 'category',
'title_li' => __( 'Categories' ),
'use_desc_for_title' => 1,
);
var_dump( wp_list_categories($args) );
<?php
$categories = get_categories( array(
'orderby' => 'name',
'order' => 'ASC'
) );
foreach( $categories as $category ) {
echo '<div class="col-md-4"><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></div>';
}