如何按任何顺序排列WordPress帖子

您是否曾尝试在网站博客页面上更改帖子的标准顺序?默认情况下,帖子是根据每个帖子发布的日期排序的,并且没有内置的方式来更改帖子出现的顺序.

如果您要更改帖子订单,则您有三个选项:更改发布后日期,写一些代码以使用发布日期以外的参数对帖子进行排序,或查找将完成作业的插件你.

更改发布日期不是许多博客的可行选项.因此,在本文中,我们将在列表中查看第二个和第三个选项.首先,我将向您展示如何构建自定义插件以实现自定义帖子订单.其次,我们将看一下可从WordPress插件目录中获取的两个插件,该目录可用于创建自定义帖子订单.

先决条件知识

这篇文章假定了一定程度的WordPress编程知识.如果您从未创建了一个简单的插件或页面模板,则会努力遵循.如果您努力遵循,以下帖子将帮助您了解您需要了解本教程中的材料:

如果您对构建自定义插件并不感兴趣,您可以跳到从WordPress插件目录中提供的插件列表,使得该过程更轻松.

此外,我将本教程中的所有代码拉到Github Repo中.如果您想看看成品应该是什么样的,你可以视图并从github 下载所有代码.

构建您自己的自定义帖子订单插件

有两个主要步骤来实现自定义帖子订单:

  1. 将自定义字段添加到可用作排序帖子的基础的帖子.
  2. 通过修改主WordPress循环来实现自定义排序顺序,或构建自定义循环并将其添加到侧栏窗口小部件或自定义页面模板.

让我们开始将自定义字段添加到WordPress后编辑屏幕.但是,在此之前,您需要触发WordPress开发环境,请创建一个新的插件文件夹,并在该文件夹中创建插件文件.如果您想查看我的插件结构的样子,您可以看到完成的产品在github .

设置自定义字段

虽然您可以使用帖子编辑屏幕中使用自定义字段元框来向每个帖子添加自定义元数据,但我更愿意为后端添加自定义元框和字段.这样,您无法将元数据分配给错误的字段.

将自定义元框添加到后端的第一步是创建元框并将其添加到帖子编辑屏幕中.

加载gist 9fe0c1c71a61d97293b6a1226bd7f1d0

该位代码,添加到您的插件文件中将创建自定义元框.

您将注意到上面的代码位中的回调函数是'jpen_custom_post_order'.让我们创建该函数下一步并将其添加到我们的插件文件中.它将为我们刚刚创建的元框添加一个字段.

加载gist 97f2676a7ab1cecb16ae9f7da5f6a11c

该位代码由设置一个nonce .接下来,代码创建一个名为$current_pos的变量,并将当前帖子排序顺序的值分配给该变量.接下来,两个段落元素创建元框字段的可见内容,如果存在当前值,则将当前值回应字段.这是盒子的样子:

screenshot of custom sort order box on post edit screen

最后,我们需要将用户输入到数据库中.我们可以通过将该位代码添加到我们的插件来做到这一点:

loading gist 7687e962c9aced9d8f4cf2520731d711

该代码首先检查以确保已设置的ONCE,并且用户有权对帖子进行更改.如果一切都会检查,则使用新的自定义后订单值更新后元数据.

在admin

中显示自定义字段

在最后一部分中,我们将自定义元框添加到帖子编辑屏幕上并编程它以存储数值.稍后,我们将使用该数值来创建自定义帖子订单.但是,在我们到达之前,我们还有另一个问题来解决.

作为事物,看看当前的帖子排序顺序值我们必须打开每个帖子,看看我们刚刚添加到帖子编辑屏幕的自定义元框.这不是很方便.让我们将自定义排序顺序值添加到管理员帖子列表中,以便我们可以快速查看分配给每个帖子的当前邮政订单值.

首先,我们需要将自定义列添加到管理区域中的帖子列表中.我们可以通过将该位代码添加到我们的插件来做到这一点:

加载gist 6fe100e61b888060bb9bd72270f6698c

接下来,我们需要为每个帖子提取自定义帖子订单值,并在新列中列出它.这不是太难,我们可以通过将此功能添加到我们的插件文件中:

加载GIST 74A8F978D11EFB0C12C6E43CF7F820F3

很棒.现在,当我们访问管理员中的博客帖子列表时,我们可以轻松地查看已分配了哪些帖子自定义排序顺序值.

这是在管理区域查看博客帖子列表时如何了解:

list of posts with position added

将自定义帖子订单放入良好使用

现在我们已经让可以为帖子分配自定义顺序,是时候将其定制订单良好使用.但是,在我们能够做到之前我们必须回答这个问题:"我们如何使用自定义排序顺序?"

您可能希望实现自定义类型的不同方式.以下是一些想法:

  • 将所有帖子排序到自定义顺序中,并在博客帖子页面上显示自定义排序列表.您可能不想在忙碌的博客上这样做,但如果您使用WordPress托管一系列教学帖子,并且不经常添加新帖子,这可能是以任何顺序对帖子进行排序的有价值的方法.
  • 创建策划的帖子列表,并使用自定义页面模板按照您选择的顺序显示它们.例如,您可以将列表策划到仅包含还属于特定类别的帖子,然后将它们对您希望的任何顺序进行排序.
  • 创建一个博客帖子列表,以几个自定义排序的帖子开头,然后包含其标准顺序的所有其余帖子.

真的,天空是极限.如果您可以思考用于自定义排序顺序的用途,并且可以弄清楚如何实现您的想法,那么这是一个可行的想法.让我们快速走过上面的三个想法,所以你可以看到每个人都可以完成.

用自定义排序列表替换博客页面上的帖子

使用自定义排序顺序的最简单方法是用帖子的自定义排序列表替换网站博客页面上的标准列表.为此,您需要做的就是将以下函数删除到您的插件中:

loading gist 02c05a487aa0b302bff101d43d9e533f

请记住,此功能只会将已分配自定义排序顺序值的帖子.尚未分配自定义排序顺序值的任何帖子都不会显示在博客页面上.换句话说,如果您这样做,您将必须为要查看的每篇文章分配自定义排序顺序值.

创建策划的自定义排序帖子

创建自定义排序后的策划列表将需要使用WP_Query类.您需要做的是创建一个查询,其中包含要使用的参数来策划列表,然后还将自定义排序顺序添加到查询.这是一个可能看起来像的:

加载gist 9fd1ede18ae87ac217580a71bc0a290d

此查询将首先查找属于ID为94的类别的帖子.接下来,它只挑选出已分配了定制后订单值的帖子.最后,它将通过自定义帖子订单值对帖子进行排序.

此查询可以将其丢弃到自定义页面模板或添加到自定义侧栏窗口小部件以显示查询的帖子.

将排序的帖子添加到博客帖子的顶部列表

另一个选项是将自定义排序的帖子添加到博客帖子列表的顶部,然后按照通常的方式排序的其余博客文章进行自定义排序帖子.这样做是一个很复杂的并且需要使用WP_Query类创建两个自定义查询.

第一个查询将获取自定义排序的帖子并根据自定义订单值显示它们.但是,我们只希望在博客的第一页上显示自定义分类帖子,因此我们必须在IF语句中包装整个第一个查询,该声明测试是否在博客的第一页上帖子.

第二个查询将抓住所有帖子并以通常的方式对其进行排序,但跳过已分配自定义排序顺序值的任何帖子.另外,为了使第二个查询所载的帖子的分页,我们必须使用全局$wp_query变量来执行一些诡计.

这是一种方式,我们可以组合两个查询来产生所需的结果:

loading GIST 3F29E43D908038080EDFBDC40F08BF3F

您可以使用该组查询在三个步骤中替换博客页面上的标准查询:

  1. 创建一个 home.php 文件作为父主题的 index.php 的副本.
  2. 删除那些查询以替换内容循环.
  3. 将new home.php 上传到您的子主题的根目录.

按照这些步骤,当显示博客页面时,新的 home.php 将用作页面模板.

插件以完成作业

如果您不是开发人员或不需要自定义编码解决方案的灵活性,则WordPress插件目录中有多个插件可轻松排序.但是,许多可用的选项都不足和不规则更新.让我们看一下由各自开发人员积极支持的两个选项,并获得频繁的更新.

  • post类型命令

    screenshot of post types order plugin from wp.org

    帖子类型顺序在更多超过40,000个站点,定期更新,开发人员在寻址PordPress插件目录中发布的支持请求中处于活动状态.所有这一切都意味着该插件在超过150名用户评论的实力下,该插件将保留4.6分中的4.6分.

    插件可用于创建自定义类型的帖子和自定义帖子类型.要使用该插件,安装和活动,然后访问可以在设置>张贴类型订单上找到的设置页面.接下来,访问您希望排序的帖子的管理员列表,并只需将帖子拖放到您希望看到它们在网站前端显示的顺序.下次访问站点前端的任何帖子列表时,您会看到帖子的顺序已更新以匹配管理员列表中的订单.

    对帖子类型顺序感兴趣?

    下载

  • 手动命令您的帖子

    screenshot of order your posts manually plugin from wp.org

    手动订购您的帖子在少于1,000个Wordpress网站上处于活动状态.但是,它的稳定用户评级为5颗星中的4.6,并且开发人员可以解决发布到WordPress插件目录的每个支持请求.一起携带,使它成为值得考虑的插件.

    要使用插件,安装它,激活它,然后转到设置>手动命令.配置一些选项,然后单击命令我的帖子.单击该按钮将带您到工具>手动命令并生成所有帖子的列表.只需将帖子拖放到您希望看到它们的顺序",然后单击保存更改.

    手动命令您的帖子?

    下载


结论

如果要以特定顺序显示帖子,则您有一些不同的选项.最灵活的选项是构建自己的插件,然后手动实现自定义排序.但是,如果开发自定义解决方案不是可能的,可以使用WordPress目录中使用易于使用的插件完成作业.

标签:

1
订阅评论
提醒
0 评论
内联反馈
查看所有评论