通过自定义字段重新排序 WordPress 文章方法
作者:WDC 发布时间:2023-12-14 21:52:53
您想更改网站博客页面上 WordPress 文章的顺序吗?那么您就在正确的地方学习此功能并更改文章的顺序。因此,在本文中,我将向您展示如何通过自定义字段更改文章的顺序。
WordPress 中文章的默认顺序基于发布日期,并按时间倒序显示。这意味着它将在顶部显示最新的文章。
通过为 WordPress 添加自定义字段,您可以根据该自定义字段更改顺序。
我将在下面的分步指南中解释如何创建自定义字段并更改博客页面上文章的顺序。
按自定义字段排序 WordPress 文章
让我们开始在帖子中创建一个自定义字段,并使用文章 ID 保存值并显示它们。
在发布元框中创建自定义字段
我们将在编辑文章页面右侧边栏的发布元框中创建一个数字自定义字段。字段值将保存在 post meta 表中,我们稍后将使用它来更改文章顺序。
有关发布元框中的自定义字段,请参阅下面的代码。
add_action('post_submitbox_misc_actions', 'add_publish_meta_custom_field');
function add_publish_meta_custom_field($post_obj) {
global $post;
$post_type = 'post';
$value = get_post_meta($post_obj->ID, 'post_order', true);
$val = ($value) ? $value : "0";
if($post_type==$post->post_type) {
echo '<div class="misc-pub-section misc-pub-section-last">'
.'<label>Post Order <input name="post_order" type="number" step="1" min="0" id="post_order" value="'.$val.'" class="small-text"></label>'
.'</div>';
}
}
以上将在发布元框中创建自定义字段,您将看到如下图所示的字段。
发布元框中的自定义字段
保存自定义字段的值
现在,我们必须保存Post Order字段的值。所以我们将save_post
在保存文章之前运行动作钩子,并update_post_meta()
用于保存相应文章的字段值。
update_post_meta()
操作将值与文章 ID 一起保存在wp_postmeta表中。
好的。请参阅代码以保存该自定义字段的值。
add_action( 'save_post', 'save_publish_meta_custom_field', 10 , 3);
function save_publish_meta_custom_field($post_id, $post, $update) {
$post_type = 'post';
if ( $post_type != $post->post_type ) {
return;
}
if ( wp_is_post_revision( $post_id ) ) {
return;
}
if(isset($_POST['post_order'])) {
update_post_meta($post_id, 'post_order', $_POST['post_order']);
}
}
上面的代码将自定义字段值保存在数据库中,并将显示在该输入数字字段中。
自定义字段中保存的值
按自定义字段更改 WordPress 文章的顺序
现在,我们将使用我们自己的顺序值更改 WordPress 文章的默认顺序。在显示结果之前,我们将运行pre_get_posts
动作钩子来修改现有的WP_Query文章。
pre_get_posts
给我们一些解决方案来修改wp_query
无需编写自定义WP_Query。
function pre_custom_post_order_sort( $query ){
if ( is_home() && $query->is_main_query() ){
$query->set( 'orderby', 'meta_value' );
$query->set( 'meta_key', 'post_order' );
$query->set( 'order' , 'ASC' );
}
}
add_action( 'pre_get_posts' , 'pre_custom_post_order_sort' );
上面的代码示例将更改博客页面或主页上的 WordPress 文章顺序。
我们在这篇文章中检查了一个主要查询和主页,然后使用meta_key元值设置查询顺序。它将检查文章是否具有自定义字段值,并根据字段值将它们置于顶部。
在模板文件中按自定义字段排序 WordPress 文章
您还可以创建自己的自定义WP_Query以按顺序显示文章。
您必须创建一个WordPress 自定义模板页面,然后您可以在该模板中编写自己的查询。
在此处查看有关如何在 WordPress 中创建自定义页面模板的分步指南。
好的。您现在有一个自定义模板文件。因此,在该模板中编写以下代码。
$args = array(
'post_type' => 'post',
'meta_key' => 'post_order',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$query = new WP_query ( $args );
if ( $query->have_posts() ) {
while ($query->have_posts() ) {
$query->the_post();
if ( !empty(get_post_meta( $post->ID, 'post_order', true )) ) {
the_title();
}
wp_reset_postdata();
}
上面的代码将按自定义字段值显示文章标题顺序,并根据自定义字段值将文章置于顶部。
您还可以在functions.php 文件中创建上述代码的简码,并在小工具、页面或您想要显示文章的任何地方使用该简码。
就是这样。您已完成按自定义字段值显示 WordPress 文章顺序。
好了至此关于通过自定义字段重新排序 WordPress 文章方法就结束了,更多关于WordPress技巧请查看下面的相关文章
来源:https://www.wpdaxue.com/how-to-reorder-wordpress-posts-by-custom-field.html
猜你喜欢
- 本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍:使用reque
- 废话不多说,估计只有我这个菜鸟废了2个小时才搞出来,主要是我想了太多方法来实现,最后都因为这因为那的原因失败了间接说明自己对可变与不可变类型
- 问题描述输入一串字符,由字母、数字和空格组成,长度 < 1000, 判断其中是否存在日期格式的数据。日期格式的数据具有如下的特征,连续
- 虽然说表单验证在客户端使用javascript来验证已经可以了,但是我们为了防止访客绕过客户端验证也为了数据安全最好还是在服务器端加上必要的
- 前言PC Server发展到今天,在性能方面有着长足的进步。64位的CPU在数年前都已经进入到寻常的家用PC之中,更别说是更高端的PC Se
- 本文实例讲述了PHP获取当前相对于域名目录的方法。分享给大家供大家参考。具体如下:http://127.0.0.1/dev/classd/i
- 如下所示:import itchat, timefrom itchat.content import TEXT#name = ' &
- 有两种方法供参考.一种是实实在在的将图片先用ASPJPEG组件做成想要的尺寸,再读取好处是节省服务器带宽,速度快坏处是处理起来较为麻烦,并网
- 1 查找记录条数 select count(*) from table_name(换成表名)&nbs
- 在登陆界面中,通常,最重要的部分为登陆的Form表。一个非常棒的提升体验的做法是,在载入页面时自动聚焦到第一个提供用户输入的表单框,让用户不
- 报错代码粉丝群一个小伙伴想pandas创建DataFrame对象,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决
- 导航标签彼此互斥、完全穷尽。导航标签其实就是一种文字表达形式,我们用标签来代表网站上的各种分类信息。比如“联系我们”这个标签,代表的内容通
- 使用 Beanstalkd 作为消息队列服务,然后结合 Python 的装饰器语法实现一个简单的异步任务处理工具.最终效果定义任务:from
- 在Python中使用字典,格式如下:dict={ key1:value1 , key2;value2 ...}在实际访问字典值时的使用格式如
- 1. 使用ssh密钥免密远程登录服务器如果你还未曾成功远程登陆过服务器,下面这篇博客或许对你有帮助如果你成功远程登陆过服务器,Let'
- 生成6位随机验证码的3种实现方式如下:1. 简单粗暴型:所有数字和字母都放入字符串;2. 利用ascii编码的规律,遍历获取字符串和数字的字
- Python import的搜索路径import的搜索路径为:搜索「内置模块」(built-in module)搜索 sys.path 中的
- 本文实例讲述了Python实现扣除个人税后的工资计算器。分享给大家供大家参考,具体如下:正好处于找工作期间避免不了会跟单位谈论薪资的情况,当
- python:如何将excel文件转化成CSV格式import pandas as pddata = pd.read_excel('
- 概述从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类