久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

WordPress 自定義文章列表列的實現方法

這篇文章主要介紹了WordPress 自定義文章列表列的實現方法,需要的朋友可以參考下
上一篇,我們使用 Meta Box 為文章添加了一個“推薦指數”字段。添加后用了一段時間,似乎不那么方便,編輯文章雖然方便了,但是在文章列表里卻不能直觀的顯示出文章推薦指數,而且不能根據推薦指數來排序文章,鑒于這些不足,今天就來完善一下,讓他更方便好用。

今天要實現的效果如下圖,具體的功能就是在列表里添加一列“推薦指數”,用來顯示每篇文章的推薦指數,同時可以根據“推薦指數”來進行文章排序。





首先要做的就是在表頭添加“推薦指數”列。
PHP Code復制內容到剪貼板
  1. function add_rating_column($columns) {   
  2.     $columns['rating'] = '推薦指數';   
  3.     return $columns;   
  4. }   
  5. add_filter('manage_posts_columns' , 'add_rating_column');   

manage_posts_columns Filter可以應用管理文章頁面的表頭里,用來修改表頭信息。注意該Filter不會應用到Page的列表頁面,如需用到,請使用manage_pages_columns 或者 manage_${post_type}_posts_columns

有了表頭,只是添加了這一列,但是該列還沒有內容,我們來為該列填充數據。

PHP Code復制內容到剪貼板
  1. function rating_column_content($column_name$post_id) {   
  2.     if ($column_name == 'rating') {   
  3.         $rating_value = get_post_meta( $post_id'_rating', true );   
  4.         echo ($rating_value / 2) . '星';   
  5.     }   
  6. }   
  7. add_action('manage_posts_custom_column''rating_column_content', 10, 2);   

這里用到了 manage_posts_custom_column Action,查看該Action的文檔,我們可以知道該Action可以用來添加或修改列表的列,包括內建的以及自定義的列表列。該Action 接受兩個參數,第一個是列表列的名字($column_name,即第一步中的’rating’,而非’推薦指數’),第二個是當前的文章ID($post_id)。根據這兩個參數,我們就可以根據當前列的名字來獲取文章的相關信息了。

這里通過判斷當前列表列是不是’rating’,是則根據文章ID獲取到推薦指數的值,并格式化輸出。

接下來讓他能夠進行排序。通過 manage_edit-post_sortable_columns Filter來指定哪些列可以用來排序。

PHP Code復制內容到剪貼板
  1. function rating_column_table_sorting( $columns ) {   
  2.     $columns['rating'] = 'rating';   
  3.     return $columns;   
  4. }   
  5. add_filter( 'manage_edit-post_sortable_columns''rating_column_table_sorting' );  
添加后,點擊“推薦指數”列表頭,可以看到頁面的地址已經變到了排序的頁面(/wp-admin/edit.php?orderby=rating&order=asc),但是列表卻并沒有排序。這是因為WordPress并不如何根據’rating’來排序。

接下來就告訴WordPress如何根據’rating’排序。

PHP Code復制內容到剪貼板
  1. function rating_column_orderby( $vars ) {   
  2.     if ( isset( $vars['orderby'] ) && $vars['orderby'] == 'rating' ) {   
  3.         $vars['orderby'] = 'meta_value_num';   
  4.         $vars['meta_key'] = '_rating';   
  5.     }   
  6.     return $vars;   
  7. }   
  8. add_filter( 'request''rating_column_orderby' );  
這里我們通過改變request Filter,判斷當前是否有’orderby’參數,以及是否等于’rating’,如果是,則將orderby=meta_value_num和meta_key=_rating加入到了當前請求的query vars中,這樣WordPress就知道需要根據自定義字段’_rating’的整數順序來排序。

至此,自定義文章列表列的功能已經實現。這里只是一個示例,稍作修改,便可以將“推薦指數”換成你文章中的任何數據,從而實現不同站點的不同需求。

另外,你是不是又注意到自己根據教程實現的效果有點不一樣?你的“推薦指數”在最后一列?

告訴你一個小技巧,在第一段代碼中,傳給Filter的參數$columns,是一個列的數組,包含了所有的列的信息,在沒有自定義列的情況下,返回的就是內建的列,其順序如下:cb(復選框)、title(標題)、author(作者)、categories(分類目錄)、tags(標簽)、comments(評論)、date(日期)。如果要將自定義的列加到特定位置,就需要循環該數組,到特定位置時,再添加自定義的列,代碼如下。如果需要刪除某些列,在循環中刪除該key=>value即可(代碼中注釋的部分,刪除了評論列)。

PHP Code復制內容到剪貼板
  1. function add_rating_column($columns) {   
  2.     $new = array();   
  3.     foreach($columns as $key => $title) {   
  4.         if ($key == 'comments') {   
  5.             $new['rating'] = '推薦指數';   
  6.         }   
  7.         // if ($key == 'comments') {   
  8.         //  continue;   
  9.         // }   
  10.         $new[$key] = $title;   
  11.     }   
  12.     return $new;   
  13. }  
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

本文主要講了thinkphp5.0版本中自定義驗證規則的使用方法和一些注意事項。
wordpress是很多新手站長搭建個人博客最喜愛的程序,但是最近在使用WordPress的時候遇到了一些問題,所以想著將遇到問題總結分享出來,下面這篇文章主要給大家介紹了關于wordpress在安
這篇文章主要介紹了PHP自定義函數判斷是否為Get、Post及Ajax提交的方法,涉及php服務器預定義變量$_SERVER及字符串相關操作技巧,需要的朋友可以參考下
這篇文章主要介紹了Yii框架實現記錄日志到自定義文件的方法,結合實例形式分析了Yii框架日志記錄的原理及自定義日志記錄的相關配置與實現技巧,需要的朋友可以參考下
這篇文章主要介紹了PHP 中常量的知識整理的相關資料,需要的朋友可以參考下
這篇文章主要介紹了php自定義函數實現統計中文字符串長度的方法,結合實例形式總結分析了php針對中文的判定、編碼與運算相關操作技巧,需要的朋友可以參考下
主站蜘蛛池模板: 亚洲一区二区久久久 | 欧美精品v国产精品v日韩精品 | 欧美激情一区二区三级高清视频 | 成人一区二区三区在线观看 | 国产成人精品午夜 | 中文一区 | 在线午夜 | 国产一区二区成人 | 91免费观看在线 | 国产成人在线一区二区 | 中文字幕欧美一区 | 精品一区国产 | 91精品国产综合久久婷婷香蕉 | 欧美日韩三区 | 国产精久久久久久 | 中文字幕亚洲视频 | 北条麻妃一区二区三区在线视频 | 成人免费一区二区三区视频网站 | 精品国产91乱码一区二区三区 | 日韩午夜精品 | av色在线| 91精品一区二区三区久久久久 | 自拍偷拍精品 | 夜夜撸av| 日韩欧美国产一区二区三区 | 欧美成人一区二区三区 | 亚洲视频国产 | 欧美福利一区 | 无毛av| 91婷婷韩国欧美一区二区 | 狠狠色综合欧美激情 | 水蜜桃久久夜色精品一区 | 在线观看视频h | 91九色在线观看 | 日韩午夜电影在线观看 | 欧美精品在线免费观看 | 亚洲日本激情 | 精品国产一区二区三区成人影院 | 99久久免费观看 | 国产精品不卡一区二区三区 | 日韩精品成人在线 |