麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > Wordpress > 正文

WordPress 自定義文章列表列的實例

2024-09-07 00:51:45
字體:
供稿:網(wǎng)友

下面來看一篇關于WordPress 自定義文章列表列的實例,這個功能在wp系統(tǒng)默認是沒有的我們是看一站長開發(fā)了,下面整理和各位分享.

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

首先要做的就是在表頭添加“推薦指數(shù)”列,代碼如下:

  1. function add_rating_column($columns) { 
  2.     $columns['rating'] = '推薦指數(shù)'
  3.     return $columns
  4. add_filter('manage_posts_columns' , 'add_rating_column'); 

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

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

  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.     } //開源軟件:Vevb.com 
  6. add_action('manage_posts_custom_column''rating_column_content', 10, 2); 

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

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

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

  1. function rating_column_table_sorting( $columns ) { 
  2.     $columns['rating'] = 'rating'
  3.     return $columns
  4. //開源軟件:Vevb.com 
  5. add_filter( 'manage_edit-post_sortable_columns''rating_column_table_sorting' ); 

添加后,點擊“推薦指數(shù)”列表頭,可以看到頁面的地址已經(jīng)變到了排序的頁面(/wp-admin/edit.php?orderby=rating&order=asc),但是列表卻并沒有排序,這是因為WordPress并不如何根據(jù)’rating’來排序.

接下來就告訴WordPress如何根據(jù)’rating’排序,代碼如下:

  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. add_filter( 'request''rating_column_orderby' ); 

這里我們通過改變request Filter,判斷當前是否有’orderby’參數(shù),以及是否等于’rating’,如果是,則將orderby=meta_value_num和meta_key=_rating加入到了當前請求的query vars中,這樣WordPress就知道需要根據(jù)自定義字段’_rating’的整數(shù)順序來排序.

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

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

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

  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. }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产一精品一av一免费爽爽 | 香蕉国产片 | 亚洲特黄 | 午夜视| 日韩黄色一级视频 | 99精彩视频在线观看 | av电影在线网站 | 天天色综合6| 久久久av影视 | 成年人小视频在线观看 | 日本黄色一级毛片 | 久久出精品 | 在线看免费观看日本 | 欧美精品一区二区三区在线播放 | 国产精品一区免费在线观看 | 涩涩操 | 国产精品久久久久久久久久东京 | 久久久成人一区二区免费影院 | 黄色片视频观看 | av电影免费在线看 | 亚洲国产一区二区三区 | 黄色免费影片 | 欧美日韩色片 | 久久久国产一区二区三区 | 九九热精品视频在线 | 深夜福利视频免费观看 | 久久亚洲精品久久国产一区二区 | 欧美日韩中文字幕在线 | 久久久日韩av免费观看下载 | 国产一级性生活视频 | 国产高潮好爽好大受不了了 | 黄色大片网 | 成人黄色小视频网站 | 成人在线视频精品 | 亚洲码无人客一区二区三区 | 综合国产一区 | 亚洲日本高清 | 午夜精品在线视频 | 国产1区2区3区中文字幕 | 久久久久久久一区 | 亚洲第一成人久久网站 |