📜  taxonomy-{taxonomy-slug}.php (1)

📅  最后修改于: 2023-12-03 15:05:29.685000             🧑  作者: Mango

介绍

在WordPress中,我们可以使用不同的方式来显示自定义分类和自定义术语。其中之一是使用 taxonomy-{taxonomy-slug}.php 文件。该文件允许我们显示特定分类的帖子和术语,同时也允许我们对这些术语进行分页。

在本教程中,我们将学习如何使用 taxonomy-{taxonomy-slug}.php 模板文件,以及如何在自定义分类和自定义术语上使用该模板。

使用 taxonomy-{taxonomy-slug}.php 模板文件

首先,我们需要了解WordPress在使用分类存档和术语存档(包括自定义分类和自定义术语)时所使用的模板结构。

WordPress使用以下模板文件来显示分类存档和术语存档:

  • taxonomy.php:所有分类和术语存档共享的模板文件。
  • taxonomy-{taxonomy}.php:为特定分类和术语存档定义的模板文件。
  • taxonomy-{taxonomy-slug}.php:为特定分类和术语存档定义的模板文件,其中 taxonomy-slug 是分类或术语的slug名称。

因此,对于我们想要显示自定义分类或自定义术语存档的情况,我们需要使用 taxonomy-{taxonomy-slug}.php 模板。

在我们的代码中,我们需要使用以下代码来获取当前的分类/术语:

$term = get_queried_object();

然后,我们可以使用以下代码来获取当前分类/术语的标题和描述:

$term_title = $term->name;
$term_description = $term->description;

最后,我们使用以下代码来显示当前分类/术语的帖子:

$args = array(
    'post_type' => 'post',
    'posts_per_page' => get_option('posts_per_page'),
    'paged' => get_query_var('paged'),
    'tax_query' => array(
        array(
            'taxonomy' => $term->taxonomy,
            'field' => 'term_id',
            'terms' => $term->term_id,
            'include_children' => false
        )
    )
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        // Display post content
    }

    // Display pagination links
}

如何使用

要使用 taxonomy-{taxonomy-slug}.php 模板文件,您需要按照以下步骤操作:

  1. 创建一个名为 taxonomy-{taxonomy-slug}.php 的文件。例如,如果您的自定义分类名称为“books”,则应创建一个名为 taxonomy-books.php 的文件。
  2. 将代码插入到该文件中,该代码将获取当前分类/术语的信息以及与其关联的所有帖子。

为了更好地了解如何使用 taxonomy-{taxonomy-slug}.php 模板文件,请参阅以下示例代码:

<?php
/**
 * The Template for displaying custom taxonomy archive.
 *
 * @package WordPress
 * @subpackage Twenty_Fourteen
 * @since Twenty Fourteen 1.0
 */

get_header(); ?>

<section id="primary" class="content-area">
    <div id="content" class="site-content" role="main">

    <?php if ( have_posts() ) : ?>

        <?php
        // Get current taxonomy term
        $term = get_queried_object();

        // Get and display term title
        $term_title = $term->name;
        echo '<h1 class="page-title">' . $term_title . '</h1>';

        // Get and display term description
        $term_description = $term->description;
        if ( ! empty( $term_description ) ) {
            echo '<div class="taxonomy-description">' . $term_description . '</div>';
        }
        ?>

        <?php
        // Get and display posts associated with current taxonomy term
        $args = array(
            'post_type' => 'post',
            'posts_per_page' => get_option('posts_per_page'),
            'paged' => get_query_var('paged'),
            'tax_query' => array(
                array(
                    'taxonomy' => $term->taxonomy,
                    'field' => 'term_id',
                    'terms' => $term->term_id,
                    'include_children' => false
                )
            )
        );
        $query = new WP_Query( $args );

        while ( $query->have_posts() ) : $query->the_post();

            // Display post content

        endwhile;

        // Display pagination links
        twentyfourteen_paging_nav();

    else :

        // If no posts are found, display an appropriate message
        get_template_part( 'content', 'none' );

    endif;
    ?>

    </div><!-- #content -->
</section><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

总结

在这篇文章中,我们学习了如何使用 taxonomy-{taxonomy-slug}.php 模板文件来显示自定义分类和自定义术语的存档。我们学习了如何获取当前分类/术语的信息以及与其关联的所有帖子,以及如何显示分类/术语的标题、描述和分页链接。

使用这些技巧,您可以轻松地创建自定义分类和自定义术语存档模板,并灵活地控制其外观和功能。