有时候为了管理文章的方便需要在wordpress后台的文章管理页面添加和删除一些列
需要用到的过滤器钩子
manage_post_posts_columns
manage_post_posts_custom_column
其中第一个钩子是返回文章列表的列名称和列值,第二个钩子是为新添加的列赋值。如果是删除默认列则不用使用。
现在为文章列表添加一个文章id和缩略图的列,删除一个显示评论数量的列。
在functions.php里添加如下代码
add_action('admin_init','recipe_admin_init');
function r_add_new_my_columns($columns)
{
unset($columns['comments']); //删除默认列
$new_columns = [];
$new_columns['id'] = '文章id';
$new_columns['thumbnail'] = '缩略图';
$new_columns['post_status'] = '文章发布状态';
return array_merge($columns, $new_columns);
}
function r_manage_my_columns($column, $post_id)
{
switch ($column) {
case 'id':
echo $post_id;
break;
case 'thumbnail':
if (has_post_thumbnail($post_id)) {
$thumbnail_id = get_post_thumbnail_id($post_id);
$thumbnail_src = wp_get_attachment_image_src($thumbnail_id, 'full');
// var_dump($thumbnail_src); 0 地址 宽度 高度
printf(
'<a target="_blank" href="%s"><img src="%s" height="30px"></a>',
$thumbnail_src[0],
$thumbnail_src[0],
$thumbnail_src[1],
$thumbnail_src[2]
);
} else {
echo '无缩略图';
}
break;
case 'post_status':
$post = get_post($post_id);
echo __($post->post_status);
break;
default:
break;
}
}
function recipe_admin_init(){
//普通文章
add_filter('manage_post_posts_columns','r_add_new_my_columns');
add_filter('manage_post_posts_custom_column','r_manage_my_columns',10,2);
}
修改后的效果如下
删除默认列用unset($column[‘列名’]),默认的列名如下。
键 | 说明 |
cb | <input type=”checkbox” /> |
title | 标题 |
author | 作者 |
categories | 分类目录 |
tags | 标签 |
comments | 评论 |
date | 文章发布日期 |
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。