阅读量:0
你可以使用以下代码来显示当前文章同分类下的文章列表:,,``
php,$post_id = get_the_ID(); // 获取当前文章的ID,$terms = wp_get_post_terms($post_id, 'category'); // 获取当前文章的分类信息,,if (!empty($terms) && !is_wp_error($terms)) {, $cat_id = $terms[0]->term_id; // 获取第一个分类的ID, $args = array(, 'cat' => $cat_id,, 'orderby' => 'date',, 'order' => 'DESC',, 'posts_per_page' => 5, );, $query = new WP_Query($args);, if ($query->have_posts()) {, echo '';, while ($query->have_posts()) {, $query->the_post();, echo '' . get_the_title() . '';, }, echo '';, } else {, echo '没有找到相关的文章。';, }, wp_reset_postdata(); // 重置全局变量$post,} else {, echo '无法获取分类信息。';,},
`,,这段代码首先获取当前文章的ID,然后获取其所属的分类信息。如果成功获取到分类信息,它会创建一个自定义的查询参数数组,包括分类ID、排序方式和每页显示的文章数量等。它使用
WP_Query类进行查询,并遍历查询结果,输出文章标题和链接。如果没有找到相关的文章,会显示相应的提示信息。通过调用
wp_reset_postdata()`函数来重置全局变量$post,以便后续的代码可以正常运行。在WordPress中显示当前文章同分类下的文章列表,可以通过多种方式实现,以下是详细的步骤和代码示例:
方法一:使用WP_Query函数
1、获取当前文章的分类:
需要获取当前文章所属的分类。
使用get_the_category()
函数可以获取到当前文章的所有分类。
2、构建查询参数:
从获取到的分类中提取出第一个分类的ID。
设置查询参数,包括分类ID、每页显示的文章数(如5篇),以及排除当前文章。
3、执行查询并输出结果:
使用new WP_Query($args)
进行查询。
通过循环输出查询到的文章列表。
<?php // 获取当前文章的分类 $categories = get_the_category(); if ($categories) { $category_ids = array(); foreach ($categories as $category) { $category_ids[] = $category->term_id; } // 构建查询参数 $args = array( 'cat' => $category_ids[0], // 使用第一个分类的ID 'posts_per_page' => 5, // 显示5篇文章 'post__not_in' => array(get_the_ID()), // 排除当前文章 ); // 查询文章 $related_posts = new WP_Query($args); // 输出文章列表 if ($related_posts->have_posts()) { echo '<ul>'; while ($related_posts->have_posts()) { $related_posts->the_post(); echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>'; } echo '</ul>'; } // 重置查询 wp_reset_postdata(); } ?>
方法二:使用get_posts函数
1、获取分类ID:与方法一相同,首先获取当前文章的分类ID。
2、构建查询参数:使用get_posts()
函数时,可以直接传入分类ID和其他参数。
3、执行查询并输出结果:通过循环输出查询到的文章列表。
<?php $categories = get_the_category(); if ($categories) { $category_ids = array(); foreach ($categories as $category) { $category_ids[] = $category->term_id; } // 获取文章列表 $posts = get_posts('numberposts=5&category=' . $category_ids[0]); // 输出文章列表 if ($posts) { echo '<ul>'; foreach ($posts as $post) : setup_postdata($post); echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>'; endforeach; echo '</ul>'; } } ?>
相关问题与解答
1、如何在侧边栏中显示同一分类下的最新文章?:可以在主题的sidebar.php
文件中添加相应的代码,或者使用小工具功能,将自定义的小工具添加到侧边栏中,以显示同一分类下的最新文章。
2、如何优化文章列表的分页显示?:可以使用WordPress自带的分页功能,通过设置paged
参数来实现分页,在$args
数组中添加'paged' => get_query_var('paged') ? get_query_var('paged') : 1
,并在URL中传递paged
参数来控制分页。
以上就是关于“WordPress显示当前文章同分类下的文章列表”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!