WordPress 自定义文章列表列的例子
发布时间:2022-06-24 11:24:41 所属栏目:教程 来源:互联网
导读:下面来看一篇关于WordPress 自定义文章列表列的实例,这个功能在wp系统默认是没有的我们是看一站长开发了,下面整理和各位分享. 今天要实现具体的功能就是在列表里添加一列推荐指数,用来显示每篇文章的推荐指数,同时可以根据推荐指数来进行文章排序. 首先要
下面来看一篇关于WordPress 自定义文章列表列的实例,这个功能在wp系统默认是没有的我们是看一站长开发了,下面整理和各位分享. 今天要实现具体的功能就是在列表里添加一列“推荐指数”,用来显示每篇文章的推荐指数,同时可以根据“推荐指数”来进行文章排序. 首先要做的就是在表头添加“推荐指数”列,代码如下: function add_rating_column($columns) { $columns['rating'] = '推荐指数'; return $columns; } add_filter('manage_posts_columns' , 'add_rating_column'); manage_posts_columns Filter可以应用管理文章页面的表头里,用来修改表头信息,注意该Filter不会应用到Page的列表页面,如需用到,请使用manage_pages_columns 或者 manage_${post_type}_posts_columns ($post_id),根据这两个参数,我们就可以根据当前列的名字来获取文章的相关信息了. 这里通过判断当前列表列是不是’rating’,是则根据文章ID获取到推荐指数的值,并格式化输出. 接下来让他能够进行排序,通过 manage_edit-post_sortable_columns Filter来指定哪些列可以用来排序,代码如下: function rating_column_table_sorting( $columns ) { $columns['rating'] = 'rating'; return $columns; } //开源软件:phpfensi.com add_filter( 'manage_edit-post_sortable_columns', 'rating_column_table_sorting' ); 添加后,点击“推荐指数”列表头,可以看到页面的地址已经变到了排序的页面(/wp-admin/edit.php?orderby=rating&order=asc),但是列表却并没有排序,这是因为WordPress并不如何根据’rating’来排序. 这里我们通过改变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即可(代码中注释的部分,删除了评论列),代码如下: function add_rating_column($columns) { $new = array(); foreach($columns as $key => $title) { if ($key == 'comments') { $new['rating'] = '推荐指数'; } // if ($key == 'comments') { // continue; // } $new[$key] = $title; } return $new; }。 (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐