“Wordpress文章页怎么调用同分类下的文章?”这是我们使用wordpress做网站时有些程序员会遇到的一个问题。对此,今天我就和大家详细的分享一些关于“Wordpress文章页调用同分类文章列表的方法”具体操作指南教程。
通常情况下,在WordPress文章页调用同分类文章,可通过以下方法实现,你可以将相关代码添加到主题的模板文件里使用。一般有两种常见的方式,下面为你详细介绍。
方法一:使用`WP_Query`自定义查询
你可以在文章单页模板文件(通常是`single.php`)中添加以下代码,来实现调用同分类文章列表:
<?php
// 获取当前文章所属分类
$categories = get_the_category();
if ($categories) {
// 获取第一个分类的ID
$category_id = $categories[0]->term_id;
// 设置查询参数
$args = array(
'category__in' => array($category_id),
'post__not_in' => array(get_the_ID()), // 排除当前文章
'posts_per_page' => 5, // 显示5篇文章,可以根据需要修改
'orderby' => 'date',
'order' => 'DESC'
);
// 实例化WP_Query对象
$related_query = new WP_Query($args);
if ($related_query->have_posts()) {
echo '<h2>同分类文章列表</h2>';
echo '<ul>';
while ($related_query->have_posts()) {
$related_query->the_post();
?>
<li>
<?php the_title(); ?>
</li>
<?php
}
echo '</ul>';
// 重置查询
wp_reset_postdata();
}
}
?>
代码解释:
- 获取当前文章分类:借助`get_the_category()`函数来获取当前文章所属的分类,接着选取第一个分类的ID。
- 设置查询参数:运用`WP_Query`构建一个新的查询,将查询范围限定为当前分类,同时排除当前文章,并且可以对显示文章的数量、排序方式等进行设置。
- 循环输出文章列表:利用`while`循环输出符合条件的文章标题与链接。
- 重置查询:使用`wp_reset_postdata()`函数重置查询,防止对后续查询产生影响。
方法二:使用`get_posts`函数
你也可以使用`get_posts`函数来实现相同的功能,以下是示例代码:
<?php
// 获取当前文章所属分类
$categories = get_the_category();
if ($categories) {
$category_id = $categories[0]->term_id;
// 设置查询参数
$args = array(
'category__in' => array($category_id),
'post__not_in' => array(get_the_ID()),
'numberposts' => 5, // 显示5篇文章,可以根据需要修改
'orderby' => 'date',
'order' => 'DESC'
);
// 获取同分类文章
$related_posts = get_posts($args);
if ($related_posts) {
echo '<h2>同分类文章列表</h2>';
echo '<ul>';
foreach ($related_posts as $post) {
setup_postdata($post);
?>
<li>
<?php the_title(); ?>
</li>
<?php
}
echo '</ul>';
// 重置全局文章数据
wp_reset_postdata();
}
}
?>
代码解释:
- 获取当前文章分类:和方法一类似,获取当前文章所属分类的ID。
- 设置查询参数:使用`get_posts`函数按照指定参数查询同分类文章。
- 循环输出文章列表:利用`foreach`循环输出符合条件的文章标题和链接。
- 重置全局文章数据:使用`wp_reset_postdata()`函数重置全局文章数据,避免对后续文章显示造成影响。
通过以上的方法,你可以把相关代码添加到`single.php`文件合适的位置,保存文件后,在文章页就能看到同分类文章列表了。
当然,其实要想在wordpress文章页调用同分类下的文章,用列表方式显示,还有更多其它方法,而以上提供的只是其中两种比较常见的用以表达其原理和如何调用。
同时,如果想要前台显示美观,我们还需要根据模板结构进行一定的css美化,具体如何美化,需要根据自身使用的模板结构来进行。