激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

DEDECMS|帝國(guó)CMS|Discuz|PHPCMS|Wordpress|ZBLOG|ECSHOP|蘋果CMS|極致CMS|CMS系統(tǒng)|

服務(wù)器之家 - 建站程序 - Wordpress - WordPress 自定義文章列表列的實(shí)現(xiàn)方法

WordPress 自定義文章列表列的實(shí)現(xiàn)方法

2019-09-03 18:07WordPress大學(xué) Wordpress

這篇文章主要介紹了WordPress 自定義文章列表列的實(shí)現(xiàn)方法,需要的朋友可以參考下

上一篇,我們使用 Meta Box 為文章添加了一個(gè)“推薦指數(shù)”字段。添加后用了一段時(shí)間,似乎不那么方便,編輯文章雖然方便了,但是在文章列表里卻不能直觀的顯示出文章推薦指數(shù),而且不能根據(jù)推薦指數(shù)來(lái)排序文章,鑒于這些不足,今天就來(lái)完善一下,讓他更方便好用。 

今天要實(shí)現(xiàn)的效果如下圖,具體的功能就是在列表里添加一列“推薦指數(shù)”,用來(lái)顯示每篇文章的推薦指數(shù),同時(shí)可以根據(jù)“推薦指數(shù)”來(lái)進(jìn)行文章排序。 


WordPress 自定義文章列表列的實(shí)現(xiàn)方法


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

manage_posts_columns Filter可以應(yīng)用管理文章頁(yè)面的表頭里,用來(lái)修改表頭信息。注意該Filter不會(huì)應(yīng)用到Page的列表頁(yè)面,如需用到,請(qǐng)使用manage_pages_columns 或者 manage_${post_type}_posts_columns

有了表頭,只是添加了這一列,但是該列還沒有內(nèi)容,我們來(lái)為該列填充數(shù)據(jù)。

PHP Code復(fù)制內(nèi)容到剪貼板
  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可以用來(lái)添加或修改列表的列,包括內(nèi)建的以及自定義的列表列。該Action 接受兩個(gè)參數(shù),第一個(gè)是列表列的名字($column_name,即第一步中的’rating’,而非’推薦指數(shù)’),第二個(gè)是當(dāng)前的文章ID($post_id)。根據(jù)這兩個(gè)參數(shù),我們就可以根據(jù)當(dāng)前列的名字來(lái)獲取文章的相關(guān)信息了。

這里通過(guò)判斷當(dāng)前列表列是不是’rating’,是則根據(jù)文章ID獲取到推薦指數(shù)的值,并格式化輸出。

接下來(lái)讓他能夠進(jìn)行排序。通過(guò) manage_edit-post_sortable_columns Filter來(lái)指定哪些列可以用來(lái)排序。

PHP Code復(fù)制內(nèi)容到剪貼板
  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' );  
添加后,點(diǎn)擊“推薦指數(shù)”列表頭,可以看到頁(yè)面的地址已經(jīng)變到了排序的頁(yè)面(/wp-admin/edit.php?orderby=rating&order=asc),但是列表卻并沒有排序。這是因?yàn)閃ordPress并不如何根據(jù)’rating’來(lái)排序。 

接下來(lái)就告訴WordPress如何根據(jù)’rating’排序。 

PHP Code復(fù)制內(nèi)容到剪貼板
  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' );  
這里我們通過(guò)改變r(jià)equest Filter,判斷當(dāng)前是否有’orderby’參數(shù),以及是否等于’rating’,如果是,則將orderby=meta_value_num和meta_key=_rating加入到了當(dāng)前請(qǐng)求的query vars中,這樣WordPress就知道需要根據(jù)自定義字段’_rating’的整數(shù)順序來(lái)排序。 

至此,自定義文章列表列的功能已經(jīng)實(shí)現(xiàn)。這里只是一個(gè)示例,稍作修改,便可以將“推薦指數(shù)”換成你文章中的任何數(shù)據(jù),從而實(shí)現(xiàn)不同站點(diǎn)的不同需求。 

另外,你是不是又注意到自己根據(jù)教程實(shí)現(xiàn)的效果有點(diǎn)不一樣?你的“推薦指數(shù)”在最后一列? 

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

PHP Code復(fù)制內(nèi)容到剪貼板
  1. function add_rating_column($columns) {   
  2.     $new = array();   
  3.     foreach($columns as $key => $title) {   
  4.         if ($key == 'comments') {   
  5.             $new['rating'] = '推薦指數(shù)';   
  6.         }   
  7.         // if ($key == 'comments') {   
  8.         //  continue;   
  9.         // }   
  10.         $new[$key] = $title;   
  11.     }   
  12.     return $new;   
  13. }  
 

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91专区在线观看 | 黄色三级三级三级 | 亚洲一区二区三区日本久久九 | 亚洲精品 在线播放 | 欧美成人精品一区二区 | hdbbwsexvideo| 黄色一级毛片免费看 | 欧美成人综合视频 | 久久久久久久久久亚洲精品 | 男人午夜小视频 | 午夜精品久久久久久久爽 | 国产一区二区三区手机在线 | 线观看免费完整aaa 久久不雅视频 | 国产欧美日韩视频在线观看 | 欧美日本免费一区二区三区 | 久久精品一区二区三 | 天使萌一区二区三区免费观看 | 久久久久久久久免费 | 成年人视频在线免费播放 | 日产精品久久久一区二区福利 | 黄色免费在线网站 | 亚洲成人福利电影 | 黄www片| 成人国产精品色哟哟 | 国产精品视频专区 | 久久91精品久久久久清纯 | 国产chinesehd精品91 | 欧美亚洲国产一区二区三区 | 素人视频在线观看免费 | 超污视频在线看 | 欧洲成人免费视频 | 日本一区视频在线观看 | 久久精品中文字幕一区 | 1000部精品久久久久久久久 | 亚洲成人精品一区二区 | 成人羞羞视频在线观看免费 | 视屏一区| 91久久国产综合精品女同国语 | 久久国产成人精品国产成人亚洲 | 久久国产中文字幕 | 精品午夜久久 |