51fyvg.com- 乐天堂app下载学习从此开端!
DIY硬件教程攒机经历装机装备
规划Photoshop网页规划特效
体系注册表DOS体系指令其它
存储主板显卡外设键鼠内存
修理显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显现器其它
修技主板硬盘键鼠显现器光驱
工作ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络体系图画安全
页面导航: 主页 > 规划学院 > 网页规划 >

WordPress 自定义文章列表列的实例

乐天堂app下载软硬件运用网 51fyvg.com 时刻:2015-01-12 17:08 作者:佚名
下面来看一篇关于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

有了表头,仅仅增加了这一列,可是该列还没有内容,咱们来为该列填充数据。

代码如下  

function rating_column_content($column_name, $post_id) {
if ($column_name == 'rating') {
$rating_value = get_post_meta( $post_id, '_rating', true );
echo ($rating_value / 2) . '星';
}
}
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来指定哪些列能够用来排序。

代码如下  

function 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’排序。

代码如下  


function rating_column_orderby( $vars ) {
if ( isset( $vars['orderby'] ) && $vars['orderby'] == 'rating' ) {
$vars['orderby'] = 'meta_value_num';
$vars['meta_key'] = '_rating';
}
return $vars;
}
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即可(代码中注释的部分,删去了谈论列)。

 

代码如下  
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;
}
顶一下
(1)
50%
踩一下
(1)
50%
------分隔线----------------------------
宣布谈论
请自觉遵守互联网相关的政策法规,制止发布色情、暴力、反抗的言辞。
点评:
表情:
验证码:点击我替换图片
引荐常识