给 WordPress 文章排序的 3 种方法

在 WordPress 中重新排序您的文章或页面经常会被用到,尤其是重新排序文章以便于在前端按照设定的顺序展示,但是这一点 WordPress的默认功能实现不了。有时您想使用自定义顺序展示文章。特别是在开发自定义的文章类型(如产品),以特定顺序显示文章可能很重要。

在本教程中,我将为您提供可用于重新排序文章的不同方法。如果您只是寻找一个插件来自定义排序您的帖子,您可以跳到推荐的插件

方法一:更改发布日期

如果您想以自定义顺序重新排列文章,可以使用的第一种方法是更改​​文章的发布日期。由于 WordPress 中文章的默认排序是基于发布日期(从近到以前),更改日期通常会更改文章的顺序。

要更改文章日期,请转到 WordPress 后台并转到您要修改的文章,将鼠标悬停在要编辑的文章上,单击“快速编辑”链接,更改日期,然后单击“更新”。

WordPress 文章排序
WordPress 文章排序

如果您使用此方法,我建议您选择一个特定的日期,然后将所有其他文章更改为使用相同的日期,然后将时间增加一秒。你要使用WordPress系统自带的批量更新功能。

重要提示:虽然更改发布日期以重新排序文章可能非常丝滑,但出于搜索引擎优化的原因,我个人并不推荐这样做。如果您在网站上使用 SEO 插件(理论上都会安装一个优化插件,要不然当时选择WordPress有点太唐突了),发布日期将被插入到 HTML 中元标记内,属性值为“article:published_time”。如果您手动更改发布日期,可能会对您的搜索引擎优化产生负面影响。

sitemap中文章发布日期

方法 2:使用文章排序插件(推荐)

自定义排序 WordPress 文章的简单方法是使用插件。我个人使用并推荐 Post Types Order 插件很多年了。我从来没有遇到过该插件的任何问题,它总是工作得很好,并且从未遇到过任何错误。

要使用该插件,只需登录 WordPress,转到“插件”>“添加插件”并搜索“Post Types Order”,找到并安装该插件。安装并激活后,您可以转到任何文章类型,您将找到一个新的“重新排序”菜单项,您可以单击该菜单项,它将带您进入一个页面,您可以在其中拖放文章以重新排序。

您还可以转到文章类型仪表板,通过单击小排序图标并拖动它们来重新排序您的文章:

文章排序插件Post Types Order

对文章进行排序后,插件会自动在管理员和前端中为您排序。如果您不想对文章自动排序或者文章没有被排序,您需要转到“设置”>“文章类型顺序”并将“自动排序”字段设置为您想要的值:

使用文章类型排序插件是对文章进行排序的简单方法,但也是因为它使用 WordPress menu_order 字段。这意味着,如果您删除该插件,从技术上讲您不会“丢失”您的自定义订单。您始终可以使用一些代码或另一个也使用 menu_order 字段的插件来设置查询以利用之前设置的顺序。

方法 3:使用自定义代码重新排序文章

如果您想使用代码而不是插件重新排序您的文章,您可以通过挂钩核心 WordPress pre_get_posts操作挂钩来实现。下面的示例显示了如何按标题更改文章的默认排序。

/**
 * Hooks into pre_get_posts to re-order our posts.
 */
function wpexplorer_pre_get_posts( $query ) {if ( is_admin() || ! $query->is_main_query() ) {    return;}
$query->set( 'orderby', 'title' );$query->set( 'order', 'ASC' );
}
add_filter( 'pre_get_posts', 'wpexplorer_pre_get_posts' );

此示例将修改站点前端的所有查询,以便它们按标题升序排列。您可以将“title”所在的位置更改为 WordPress 中可用的任何“orderby”值。当然,如果您想定位特定的存档、页面或文章类型,您可以修改代码片段。

按值排序

下面的表格显示了WordPress 中当前(在更新本文时)可用的所有排序依据值:

描述
none默认发布时间排序。
ID按帖子 ID 排序。注意大小写。
author按作者顺序。
title按文章标题排序。
name按文章名称(文章别名)排序。
type按文章类型排序。
date按日期排序。
modified按后修改日期排序。
parent按文章/页面父 ID 排序。
rand随机顺序。
重要提示:不建议使用此顺序,因为它会大大减慢您的网站速度并且无法使用缓存。
comment_count按评论数排序
relevance按搜索词的顺序排列:首先是整个句子是否匹配。其次,如果所有搜索词都在标题内。第三,标题中是否出现任何搜索词。第四,完整的句子是否出现在内容中。
menu_order按页面顺序(编辑页面属性框中的顺序字段)和附件(插入/上传媒体库对话框中的整数字段)排序,但可用于具有不同“menu_order”值的任何文章类型。(这个本人研究了半天,就是手动给每篇文章一个数值,按数值大小排序,但是实现起来复杂,不如上面插件来的方便)
meta_value按元(自定义字段)值排序。请注意,查询中还必须存在“meta_key=keyname”。
meta_value_num按数字元(自定义字段)值排序。请注意,查询中还必须存在“meta_key=keyname”。
post__in按 post__in 查询参数的值排序。
post_name__in按 post_name__in 查询参数的值排序。
post_parent__in按 post_parent__in 查询参数的值排序。

在 WordPress 中重新排序文章非常简单!

正如您所看到的,有很多方法可以对您的文章进行重新排序,而且非常容易做到。还有许多不同的方法可以对文章进行排序,无论是按日期、标题、自定义字段还是自定义顺序。

我上面提到,当我需要专门控制项目的顺序时,我个人喜欢使用 Post Types Order 插件进行自定义排序。它很简单,而且效果很好,尽管我不太喜欢管理页面顶部显示的巨大促销框。

滚动至顶部