wordpress关于category和taxnomy陈列的几种情形

Published
April 26, 2022
浏览次数 :  14

We can show all category by simple WordPress default function. like this –

<?php wp_list_categories(); ?>

PHPCopy

It has some Parameters to customize more. you can check details here on wp developer reference

Also we can use PHP loop to show more customize way

<?php 
$categories = get_categories( array(
    'orderby' => 'name',
) );
    
foreach ( $categories as $category ) {
    printf( '<a href="%1$s">%2$s</a><br />',
        esc_url( get_category_link( $category->term_id ) ),
        esc_html( $category->name )
    );
}
?>

PHPCopy

You can also use same parameter here on the array as wp_list_categories. Now what about custom taxonomy? No worries it very simple as previous code.

<?php

// Taxonomy Loop

$terms = get_terms( array(
        'taxonomy'   => 'custom_taxonomy_name', //custom taxonomy name
        'hide_empty' => true, 
));

echo '<ul>';

// Loop through all terms with a foreach loop
foreach( $terms as $term ) {
    // Use get_term_link to get terms permalink
    // USe $term->name to return term name
    echo '<li><a href="'. get_term_link( $term ) .'">'. $term->name .'</a></li>';
}

echo '</ul>'; 
?>

PHPCopy

To Show term inside the wp query loop will be

<?php 
the_terms( int $id, string $taxonomy, string $before = '', string $sep = ', ', string $after = '' ) 
//or simple use
the_terms( get_the_ID() , 'category' ,'', ', ','' );
?>

PHPCopy

Show on single post

 <?php
$terms = get_the_terms( $post->ID , 'custom_taxonomy_name' );
foreach ( $terms as $term ) {
  echo $term->slug;
}
?>

Top