分享好友 cms教程首页 频道列表

WordPress 自定义文章列表列的实现方法

WordPress  2015-08-21 13:520
上一篇,我们使用 Meta Box 为文章添加了一个“推荐指数”字段。添加后用了一段时间,似乎不那么方便,编辑文章虽然方便了,但是在文章列表里却不能直观的显示出文章推荐指数,而且不能根据推荐指数来排序文章,鉴于这些不足,今天就来完善一下,让他更方便好用。

今天要实现的效果如下图,具体的功能就是在列表里添加一列“推荐指数”,用来显示每篇文章的推荐指数,同时可以根据“推荐指数”来进行文章排序。


WordPress 自定义文章列表列的实现方法


首先要做的就是在表头添加“推荐指数”列。
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" alt="WordPress 自定义文章列表列的实现方法" />
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. }  

查看更多关于【WordPress】的文章

展开全文
相关推荐
点赞 0
反对 0
举报 0
评论 0
分享 1
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
WordPress 不同分类目录调用不同模板的方法
本文章要介绍的是两个功能分别是不同分类模板与不同文章调用不同模板了,这篇文章小编是整理了两篇文章,希望对各位会带来帮助

0评论2015-08-21302

Wordpress中上一篇与下一篇功能代码
这篇文章主要为大家介绍了Wordpress中上一篇与下一篇功能代码,并对其函数的具体参数进行了较为详细的介绍,是非常实用的技巧,需要的朋友可以参考下

0评论2015-08-02202

WordPress中添加语音搜索功能的实现方法
这篇文章主要为大家介绍了WordPress中添加语音搜索功能的实现方法,属于html5 的speech功能的API,具有一定的参考借鉴价值,需要的朋友可以参考下

0评论2015-08-02127

WordPress文章底部去除与添加版权信息的方法
这篇文章主要为大家介绍了WordPress文章底部去除与添加版权信息的方法,涉及个性化定制页面的技巧,非常具有实用价值,需要的朋友可以参考下

0评论2015-08-02178

WordPress修改评论默认头像的方法
这篇文章主要为大家介绍了WordPress修改评论默认头像的方法,可实现定制个性化的评论头像功能,非常具有实用价值,需要的朋友可以参考下

0评论2015-08-02237

获取wordpress注册用户的数量的方法
这篇文章主要为大家介绍了获取wordpress注册用户的数量的方法,给出了两个实现这一功能的方法,具有一定的参考借鉴价值,需要的朋友可以参考下

0评论2015-08-02180

WordPress管理页面底部自定义文字的方法
这篇文章主要为大家介绍了WordPress管理页面底部自定义文字的方法,可通过调用一个自定义函数来实现该功能,是非常实用的技巧,需要的朋友可以参考下

0评论2015-08-02132

WordPress屏蔽评论中链接地址的方法
这篇文章主要为大家介绍了WordPress屏蔽评论中链接地址的方法,可通过自定义函数进行正则替换删除链接,也可增加nofollow来实现优化效果,需要的朋友可以参考下

0评论2015-08-02193

Wordpress实现单篇文章分页显示的方法
这篇文章主要为大家介绍了Wordpress实现单篇文章分页显示的方法,分析了文章页面的分页原理与对应js文件的修改方法,是非常实用的技巧,需要的朋友可以参考下

0评论2015-08-02117

Wordpress将选中内容分享到新浪腾讯微博的方法
这篇文章主要为大家介绍了Wordpress将选中内容分享到新浪腾讯微博的方法,涉及调用新浪与腾讯微博接口的用法,非常具有实用价值,需要的朋友可以参考下

0评论2015-08-02192

WordPress获取当前页面URL地址的方法
这篇文章主要为大家介绍了WordPress获取当前页面URL地址的方法,给出了WordPress原生方法与自定义方法,是非常实用的技巧,需要的朋友可以参考下

0评论2015-08-02187

WordPress给博客标题加上页码的方法
这篇文章主要为大家介绍了WordPress给博客标题加上页码的方法,可通过修改模板代码实现这一功能,是进行网站优化非常实用的技巧,需要的朋友可以参考下

0评论2015-08-02145

wordpress随机调用显示文章的方法总结
这篇文章主要为大家介绍了wordpress随机调用显示文章的方法,实例总结了三种常用的方法供大家选择,非常具有实用价值,需要的朋友可以参考下

0评论2015-08-02122

禁止WordPress自动替换半角标点符号的方法
这篇文章主要为大家介绍了禁止WordPress自动替换半角标点符号的方法,只需将底层代码中关于半角标点符号替换的功能函数注释掉即可,需要的朋友可以参考下

0评论2015-08-02142

更多推荐