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

WordPress 自定义文章列表列的实现方法,第1张

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

本文详细介绍了如何完成WordPress自定义文章列表,朋友们一定要参考。

上一篇,大家应用MetaBox为文章加上了一个“推荐指数”字段名。加上后用了一段时间,好像不那麼便捷,编写文章尽管便捷了,可是在文章列表里却不可以形象化的显示信息出文章推荐指数,并且不可以依据推荐指数来排序文章,由于这种不够,今日就来健全一下,使他更便捷功能强大。

今日要完成的实际效果如下图,实际的作用便是在列表里加上一列“推荐指数”,用于显示信息每章文章的推荐指数,另外能够依据“推荐指数”来开展文章排序。





最先要做的便是在表头加上“推荐指数”列。
PHPCode拷贝內容到剪贴板 函数add_rating_column($columns){
  • $columns['rating']='recommendationindex';
  • return$columns
  • }
  • add_filter('manage_posts_columns','add_rating_column');
    manage_posts_columns Filter能够程序管理文章网页页面的表头内,用于改动表头信息内容。留意该Filter不容易运用到Page的列表网页页面,如要用到,请应用manage_pages_columns 或是 manage_${post_type}_posts_columns

    有了标题,只添加了这一列,但是这一列还没有内容。让我们向该列添加数据信息。

    PHPCode拷贝內容到剪贴板 函数rating_column_content($column_name,$post_id){
  • if($column_name=='rating'){
  • $rating_value=get_post_meta($post_id,'_rating',true);
  • 回声($rating_value/2)。星’;
  • }
  • }
  • add_action('manage_posts_custom_column','rating_column_content',10,2);

    在这里,manage_posts_custom_column动作用于查询该动作的文本文档,我们可以知道该动作可以用于添加或更改列表的列,包括内置的和自定义的列表列。该 *** 作接受两个主要参数,第一个是列表列的名称($column_name,即第一步中的'rating',而不是'recommendationindex'),第二个是当前文章ID($post_id)。根据这两个主要参数,可以根据当前终端的名称得到文章的基本信息。

    这里根据当前列表栏是否为‘评级’,根据文章ID获得推荐索引值,恢复出厂设置输出。

    接下来,他可以排序。根据manage_edit-post_sort_columns过滤器,指定哪些列可用于排序。

    PHPCode拷贝內容到剪贴板 函数rating_column_table_sorting($columns){
  • $columns['rating']='rating';
  • return$columns
  • }
  • add_filter('manage_edit-post_sortable_columns','rating_column_table_sorting'); 加上后,点一下“推荐指数”列表头,能够见到网页页面的详细地址早已变来到排序的网页页面(/wp-admin/edit.php?orderby=rating&order=asc),可是列表却并沒有排序。这是由于WordPress并不怎样依据’rating’来排序。

    接下去就告知WordPress怎样依据’rating’排序。

    PHPCode拷贝內容到剪贴板 函数rating_column_orderby($vars){
  • if(isset($vars['orderby'])&;&$vars['orderby']=='rating'){
  • $vars['orderby']='meta_value_num';
  • $vars['meta_key']='_rating';
  • }
  • 返回$vars
  • }
  • add_filter('request','rating_column_orderby');
  • 这儿大家根据更改requestFilter,分辨当今是不是有’orderby’主要参数,及其是不是相当于’rating’,如果是,则将orderby=meta_value_num和meta_key=_rating添加来到当今要求的queryvars中,那样WordPress就了解必须依据自定字段名’_rating’的整数金额次序来排序。

    到此,自定文章列表列的作用早已完成。这儿仅仅一个实例,稍加改动,便能够将“推荐指数”换为你文章中的一切数据信息,进而完成不一样网站的不一样要求。

    此外,是不是你又注意到自身依据实例教程完成的实际效果有点儿不一样?你的“推荐指数”在最终一列?

    对你说一个小窍门,在第一段编码中,发送给Filter的主要参数$columns,是一个列的数组,包括了全部的列的信息内容,在沒有自定列的状况下,回到的便是內建的列,其次序以下:cb(勾选框)、title(题目)、author(创作者)、categories(专业分类)、tags(标识)、comments(评价)、date(日期)。假如要将自定的列加到特殊部位,就必须循环系统该数组,到特殊部位时,再加上自定的列,编码以下。假如必须删掉一些列,在循环系统中删掉该key=>value就可以(编码中注解的一部分,删除了评价列)。

    PHPCode拷贝內容到剪贴板 函数add_rating_column($columns){
  • $new=array();
  • foreach($columnsas$key=>;$title){
  • if($key=='comments'){
  • $new['评级']='推荐指数';
  • }
  • //if($key=='comments'){
  • //继续;
  • //}
  • $new[$key]=$title;
  • }
  • return$new
  • }

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/773962.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存