我们用 wordpress 发布文章时,会用到一个希望把指定某一篇或者几篇文章置顶首页的功能,而不是 wordpress 默认的按照发布时间降序排列,也就是说按照我的想法文章排序第一、第二、第三、第四等等。虽然有些主题提供了置顶功能,但依然不能满足完全自定义文章排序的需求,默认 wp 博客是不提供这项功能的,也可以使用插件来实现。本着能不用插件就不用插件的原则,魏艾斯博客来说一下如何修改 wordpress 文章默认排序,摆脱按发布时间升降序排列的方法。

首先要添加一处。在 wordpress 后台的“写文章”里面,最上面点开“显示选项”,勾选最上面的“自定义栏目”。
如果你使用 WordPress自带的古登堡编辑器,在文章编辑状态下,点击右上角的竖三点,进入偏好设置 > 面板 > 额外 > 自定义字段,即可。

这时候在文章编辑区的下面就会看到自定义栏目了。一般老魏习惯于把这个栏目用鼠标左键拖拽到右侧最上面,这样编辑文章的时候就直接能输入排序序号了。

点击输入新栏目,输入 post_order,值为 0,点击添加自定义栏目,结果如下图。这样就添加了一个自定义栏目,初始值是 0,这个 post_order 就是用来排序的。
这种方法需要每篇文章都设置一下排序值,魏艾斯博客首页置顶文章排序就是这样设置出来的。以后每次写文章的时候,在值这里输入一个足够大的数字。比如老魏这里的设置是从 00001 开始的,也就是可以够你写一万篇文章,按照每天写一篇文章的速度计算足够写十年的文章排序用了,嫌不够用前面可以多加几个 0。

下载你网站模板里面的 index.php 文件并做好备份。在 index.php 中替换如下代码,把默认发布时间排序改成了你的 meta_key,同时添加一项 meta_key。找到如下代码
$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
$args=array(
从这里开始下面的代码
‘caller_get_posts’ => 1,
‘paged’ => $paged
替换成
‘meta_key’ => ‘post_order’,
‘orderby’ => ‘meta_value’,
‘paged’ => $paged,
‘order’ => ‘DESC’
);
上传覆盖源文件后,你就可以依据自己定义的 meta_data 对文章进行排序了。
最后要说的是,这样方法不仅试用于首页,也适用于标签页、分类页等存档页面,具体修改方法和文章页一样,您可以自己尝试一下。
暂无评论内容