在WordPress后台的文章列表页面,默认情况下只有文章标题、作者、发布时间等等。但使用个别wordpress主题的时候可能会有各种文章参数,为了维护网站的方便,所以往往需要在后台文章列表里添加某一个列表栏目,显示自定义的参数。
那么如何在文章后台添加这些的自定义列呢?下面我们就一起来学习一下WP后台添加自定义列的简单方法。下面已本程序为例,添加文章喜欢人数。
打开functions.php函数文件,在文件最末尾处开始添加。
添加列名称
add_filter('manage_posts_columns' , 'add_posts_likes_column');
function add_posts_likes_column($columns) {
$columns['likes'] = '喜欢';
return $columns;
}
给这新加列赋值
add_action('manage_posts_custom_column', 'posts_likes_column_content', 10, 2);
function posts_likes_column_content($column_name, $post_id) {
if ($column_name == 'likes') {
$likes = get_post_meta($post_id, 'likes', true); echo $likes?$likes:0;
}
}
到这里其实已经可以在后台看到新增的“喜欢”自定义列了,但是这有个问题,不能排序。
在表头“喜欢”列名处添加排序链接
add_filter("manage_edit-post_sortable_columns", "posts_likes_column_make_sortable" );
function posts_likes_column_make_sortable($columns) {
$columns['likes'] = 'likes';
return $columns;
}
设置排序
add_filter( 'request', 'posts_likes_column_orderby' );
function posts_likes_column_orderby( $vars ) {
if ( isset( $vars['orderby'] ) && 'likes' == $vars['orderby'] ) {
$vars = array_merge( $vars, array(
'meta_key' => 'likes',
'orderby' => 'meta_value_num'
) );
}
return $vars;
}
看下效果,完工。