📅  最后修改于: 2023-12-03 15:06:01.718000             🧑  作者: Mango
WordPress 是一款功能强大的内容管理系统(CMS),可以用于创建各种类型的网站和博客。其中一个重要的功能是类别(Category)管理,可以帮助网站管理员将文章按照不同的主题分类展示。本文将介绍如何在 WordPress 网站前端设置类别,使用 PHP 代码实现。
首先,我们需要获取 WordPress 网站中已创建的类别列表。可以通过 get_categories
函数获取到类别对象数组。以下是示例代码:
$args = array(
'orderby' => 'name',
'order' => 'ASC'
);
$categories = get_categories( $args );
此处使用了一个 $args
数组来设置获取类别的参数,参数说明如下:
orderby
:按照哪个字段进行排序,可以是 ID
、name
、slug
、count
、term_group
等。order
:排序方式,可以是 ASC
(升序)或 DESC
(降序)。如果不需要排序,可以不使用 $args
参数,直接调用 get_categories()
函数。
接下来,可以用 foreach
循环遍历类别数组,输出每个类别的名称和链接。以下是示例代码:
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 )
);
}
通过调用 get_category_link
函数,可以获取到类别的链接地址,其中参数是类别 ID。使用 esc_url
和 esc_html
函数可以对链接和名称进行安全处理,避免 XSS 攻击。
除了显示类别列表,我们还可以在 WordPress 网站前端根据类别展示文章。可以使用 WP_Query
类来查询类别的文章列表。以下是示例代码:
$category = get_category( get_query_var('cat') ); // 获取当前类别
$args = array(
'category__in' => $category->term_id,
'post_type' => 'post', // 文章类型,可以是 post、page 等
'post_status' => 'publish',
'paged' => get_query_var('paged')
);
$query = new WP_Query( $args ); // 查询文章
if ( $query->have_posts() ) : // 如果有文章
while ( $query->have_posts() ) : $query->the_post();
printf( '<a href="%1$s">%2$s</a><br />',
esc_url( get_permalink() ),
esc_html( get_the_title() )
);
endwhile;
endif;
wp_reset_query(); // 重置查询
首先,通过调用 get_query_var('cat')
函数获取当前类别。然后,将类别 ID 作为参数,设置 category__in
参数。使用 WP_Query
类可以查询符合条件的文章,其中的参数说明如下:
category__in
:查询属于指定类别的文章。post_type
:查询的文章类型,默认为 post。post_status
:查询的文章状态,默认为 publish。paged
:分页参数,可以通过 get_query_var('paged')
获取当前页数。接下来,使用 while
循环遍历符合条件的文章,get_permalink
函数获取文章链接,get_the_title
函数获取文章标题。同样使用 esc_url
和 esc_html
函数进行安全处理。
最后,使用 wp_reset_query
函数来重置查询,避免与其它查询产生冲突。
通过上述代码,我们可以在 WordPress 网站前端根据类别展示文章列表,实现了基本的类别管理功能。