XuLaLa.Tech

首页客户端下载Windows 使用V2Ray 教程SSR 教程Clash 教程

WordPress 的上/下一篇跳转到同分类的文章

2025.03.27

我这周做站的突然有个需求,主题本身是有上一篇和下一篇的功能,但我实际的需求是希望它展现同一个分类下的上一篇和下一篇文章,而不是按照发布顺序。

问了问GPT,让我去主题里找single.php 或者是content.php里去找<?php previous_post_link ,然后改一下代码。

这是GPT给的,有点复杂。

<?php$prev_post = get_previous_post(true, '', 'category');$next_post = get_next_post(true, '', 'category');?><?php if (!empty($prev_post)) : ?><div class="nav-previous"><a href="<?php echo get_permalink($prev_post->ID); ?>" rel="prev"><?php echo esc_html($prev_post->post_title); ?></a></div><?php endif; ?><?php if (!empty($next_post)) : ?><div class="nav-next"><a href="<?php echo get_permalink($next_post->ID); ?>" rel="next"><?php echo esc_html($next_post->post_title); ?></a></div><?php endif; ?>

直接上手搜,结果发现其实超级简单。WordPress 的上一篇和下一篇的函数是这样的:

<?php previous_post_link($format, $link, $in_same_cat = false, $excluded_categories = ""); ?><?php next_post_link($format, $in_same_cat = false, $excluded_categories = ""); ?>

$format:格式化被显示的字符串,上一篇函数缺省值是"'« %link",下一篇函数缺省值是"%link »"。

$link:被显示的字符串,缺省值是上一篇或下一篇的"$title",也可以设置为其它你想显示的字符串,就是设置瞄点文字的地方。

$in_same_cat :表示是显示是不是只显示同一分类下的文章,缺省值false表示显示所有分类下的文章,可以写true,表示只显示当前文章分类下的文章。

$excluded_categories:表示在显示上一篇或下一篇时是否排除掉某分类,缺省不排除,如果排除,把要排除的分类的ID列在此处,以英文逗号分隔.

所以我只要找到主题里的函数,然后加上true就行了。

最后的代码为(我用的是Hue主题,红色就是修改的地方),我还差点准备让GPT给我写个功能出来了:

<?php if ( is_single() ):ob_start();next_post_link('%link', '<i class="fas fa-chevron-right"></i><span>%title</span>', true);$next_link = ob_get_clean();ob_start();previous_post_link('%link', '<i class="fas fa-chevron-left"></i><span>%title</span>', true);$prev_link = ob_get_clean();?><?php endif; ?>参考:《给 WordPress模板 添加 ”上一篇“ 和 ”下一篇“ 功能 - 小羿》
© 2010-2022 XuLaLa 保留所有权利 本站由 WordPress 强力驱动
请求次数:69 次,加载用时:0.665 秒,内存占用:32.19 MB