WordPress自定义字段

Wordpress建站教程:调整Wordpress文章排序

作者:悦然wordpress建站(悦然建站)



(此处已添加小程序,请到今日头条客户端查看)

继续分享wordpress建站教程。今天给大家分享控制wordpress文章排序的方法。默认情况下wordpress网站的文章都是按时间排序的,这也比较符合文章更新的特点,一般情况下我们也没有必要特别处理。

可是对企业网站建设来说,我们难免会有一些特殊的要求,比如一些特别的产品或新闻需要把它放在前面。接下来悦然企业网站建设就给大家分享几个可以调整wordpress文章排序的方法。

1.时间控制

wordpress网站中默认情况是最新发布的文章是排在最前面的,所以我们可以通过修改时间的方法来控制文章排序。

比如你想让一篇文章排前面,那就把这个文章的发布时间按当前最新直接直接发布即可,如果你想让一篇文章排后台,那你只需要在发布文章时把发布时间调整靠后一些即可。

?如果是已经发布的文章,你可以在文章列表中快速编辑,修改文章的发布日期就可以了。

温馨提示:通过修改时间来控制排序效果很好很直接,但是对网站SEO优化不利,所以这种方法尽量少用。

2.置顶功能

?你可以在文章编辑页面直接选择让文章置顶,这样即使以后有新的文章发布,这篇文章也会显示在最前面。

?同样你也可以给已发布的文章设置置顶,在文章列表中快速编辑,勾选置顶就可以了。

温馨提示:wordpress网站自带的置顶功能主要是针对博客网站中,但是很多企业网站因为都是二次开发过的,有些还取消也自带的配置功能,所以有些wordpress企业网站可能配置功能不会生效。此时可以尝试找第三方的置顶插件代替。

3.插件控制

前面的两种调整文章排序的方法都不太灵活,最理想的状态是我们可以像电脑桌面一下用鼠标来手动文章的位置,而这样的功能是可以实现的,只需要使用一个插件即可。

?给大家推荐的插件是post-types-order,这款插件可以直接在wordpress插件中心,或者是在wordpress官网下载,软件可以免费使用,不过是英文的,但不影响使用。

?启动插件之后你就可以直接手动文章排序了。

有些时候可能搜索不到post-types-order插件,我给大家提取了下载地址如下:

post-types-order插件下载

总结

关于wordpress网站文章排序就给大家介绍到这里,一般情况下自然排序就可以了,再配合置顶功能其实已经足够用了,如非必要还是不要随便去调整文章排序吧。

?

如何通过自定义字段重新排序WordPress文章

在编辑文章页面右侧边栏的发布元框中创建一个数字自定义字段。字段值将保存在postmeta表中,我们稍后将使用它来更改文章顺序。

有关发布元框中的自定义字段,请参阅下面的代码。

add_action('post_submitbox_misc_actions','add_publish_meta_custom_field');functionadd_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'<DIVCLASS="MISC-PUB-SECTIONMISC-PUB-SECTION-LAST">'

.'PostOrder<INPUTNAME="POST_ORDER"TYPE="NUMBER"STEP="1"MIN="0"ID="POST_ORDER"VALUE="'.$VAL.'"CLASS="SMALL-TEXT">'

.'

';

}}

以上将在发布元框中创建自定义字段,您将看到如下图所示的字段。

发布元框中的自定义字段

保存自定义字段的值

现在,我们必须保存PostOrder字段的值。所以我们将save_post在保存文章之前运行动作钩子,并update_post_meta()用于保存相应文章的字段值。

update_post_meta()操作将值与文章ID一起保存在wp_postmeta表中。

好的。请参阅代码以保存该自定义字段的值。

add_action('save_post','save_publish_meta_custom_field',10,3);functionsave_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。

functionpre_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=newWP_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文章顺序。