通過自定義字段重新排序 WordPress 文章方法
您想更改網(wǎng)站博客頁面上 WordPress 文章的順序嗎?那么您就在正確的地方學(xué)習(xí)此功能并更改文章的順序。因此,在本文中,我將向您展示如何通過自定義字段更改文章的順序。
WordPress 中文章的默認(rèn)順序基于發(fā)布日期,并按時間倒序顯示。這意味著它將在頂部顯示最新的文章。
通過為 WordPress 添加自定義字段,您可以根據(jù)該自定義字段更改順序。
我將在下面的分步指南中解釋如何創(chuàng)建自定義字段并更改博客頁面上文章的順序。
按自定義字段排序 WordPress 文章
讓我們開始在帖子中創(chuàng)建一個自定義字段,并使用文章 ID 保存值并顯示它們。
在發(fā)布元框中創(chuàng)建自定義字段
我們將在編輯文章頁面右側(cè)邊欄的發(fā)布元框中創(chuàng)建一個數(shù)字自定義字段。字段值將保存在 post meta 表中,我們稍后將使用它來更改文章順序。
有關(guān)發(fā)布元框中的自定義字段,請參閱下面的代碼。
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>'; } }
以上將在發(fā)布元框中創(chuàng)建自定義字段,您將看到如下圖所示的字段。
發(fā)布元框中的自定義字段
保存自定義字段的值
現(xiàn)在,我們必須保存Post Order字段的值。所以我們將save_post
在保存文章之前運(yùn)行動作鉤子,并update_post_meta()
用于保存相應(yīng)文章的字段值。
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']); } }
上面的代碼將自定義字段值保存在數(shù)據(jù)庫中,并將顯示在該輸入數(shù)字字段中。
自定義字段中保存的值
按自定義字段更改 WordPress 文章的順序
現(xiàn)在,我們將使用我們自己的順序值更改 WordPress 文章的默認(rèn)順序。在顯示結(jié)果之前,我們將運(yùn)行pre_get_posts
動作鉤子來修改現(xiàn)有的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元值設(shè)置查詢順序。它將檢查文章是否具有自定義字段值,并根據(jù)字段值將它們置于頂部。
在模板文件中按自定義字段排序 WordPress 文章
您還可以創(chuàng)建自己的自定義WP_Query以按順序顯示文章。
您必須創(chuàng)建一個WordPress 自定義模板頁面,然后您可以在該模板中編寫自己的查詢。
在此處查看有關(guān)如何在 WordPress 中創(chuàng)建自定義頁面模板的分步指南。
好的。您現(xiàn)在有一個自定義模板文件。因此,在該模板中編寫以下代碼。
$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(); }
上面的代碼將按自定義字段值顯示文章標(biāo)題順序,并根據(jù)自定義字段值將文章置于頂部。
您還可以在functions.php 文件中創(chuàng)建上述代碼的簡碼,并在小工具、頁面或您想要顯示文章的任何地方使用該簡碼。
就是這樣。您已完成按自定義字段值顯示 WordPress 文章順序。
好了至此關(guān)于通過自定義字段重新排序 WordPress 文章方法就結(jié)束了,更多關(guān)于WordPress技巧請查看下面的相關(guān)文章
相關(guān)文章
解決HTTP服務(wù)響應(yīng)數(shù)據(jù)不完整響應(yīng)數(shù)據(jù)截?cái)嗟膯栴}
這篇文章主要介紹了HTTP服務(wù)響應(yīng)數(shù)據(jù)不完整響應(yīng)數(shù)據(jù)截?cái)嗟膯栴}及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03性能測試監(jiān)控網(wǎng)絡(luò)吞吐量過程詳解
這篇文章是關(guān)于性能的文章,主要介紹了性能測試中測試監(jiān)控網(wǎng)絡(luò)吞吐量過程,文中給了詳細(xì)的示例分析,有需要的朋友可以借鑒參考下2021-09-09xmlHttp ie6下不跨域還提示沒有權(quán)限,ie8下不會有這錯誤
昨天晚上叫我好弄啊,最后發(fā)現(xiàn)原因是我url太長了,最后發(fā)現(xiàn)URL在2070B左右就不行了2009-04-04Git 的基本操作、開發(fā)流程、實(shí)用技巧總結(jié)(陳彥貝)
這篇文章主要介紹了Git 的基本操作、開發(fā)流程、實(shí)用技巧總結(jié),需要的朋友可以參考下2017-09-09Eslint在Vscode中使用的一些相關(guān)技巧總結(jié)
ESLint 是一個代碼規(guī)范和錯誤檢查工具,所有東西都是可以插拔的,這篇文章主要給大家介紹了關(guān)于Eslint在Vscode中使用的一些相關(guān)技巧總結(jié),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07關(guān)于使用mvn deploy命令將本地jar包上傳到maven私服的問題(收藏)
這篇文章主要介紹了使用mvn deploy命令將本地jar包上傳到maven私服,分享本篇教程可以幫助多數(shù)朋友少走彎路,本文具有很好的收藏價值,需要的朋友可以參考下2022-03-03