当前位置:K88软件开发文章中心编程全书编程全书02 → 文章内容

wordpress后台post_column定制,加入列表摘要功能

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-4 9:20:48

-->

今天写这篇文章总结一下修改列表页面用到的hooks及修改page、custom post type、comments、media和user列表页的方法。

如何添加/删除/修改列表中的字段——基本原理陈述

简单的说:用filter添加/删除/修改字段标题(column headers),用action打印出每一列表格单元应该显示的结果。所需的filter和action如下

Filters:

manage_posts_columns
过滤文章列表页的字段

manage_${post_type}_posts_columns
过滤自定义文章类型(custom post type)列表页的字段,${post_type}是custom post type的名称.

manage_pages_columns
过滤页面(page)列表页字段

manage_edit-comments_columns
过滤评论列表页字段

manage_upload_columns
过滤媒体列表页字段

manage_users_columns
过滤用户列表页字段

Actions:

manage_posts_custom_column
输出文章列表页面字段的内容

manage_${post_type}_posts_custom_column
输出自定义文章类型列表页面字段内容

manage_pages_custom_column
输出页面列表页字段内容

manage_comments_custom_column
输出评论列表页字段内容

manage_media_custom_column
输出媒体列表页字段内容

manage_users_custom_column
输出用户列表页字段内容

显然上述的filters和actions具有一一对应的关系,应该成对使用。通过观察其构成,可以简化为下面的形式方便记忆,${screen_id}的解释见下文。

Filter: manage_${screen_id}_columns

Action: manage_${type}_custom_column

让字段可排序

manage_${screen_id}_sortable_columns
是一个filter,定义哪些字段是可排序的,因为是filter,只负责定义,不具备处理功能,处理代码需要另外写。

${screen_id}是每个页面独有的ID,例如:

  • 文章列表页 – edit-post
  • custom post type列表页 – edit-{custom post type name}
  • page列表页 – edit-page
  • 媒体列表页 – upload
  • 评论列表页 – edit-comments
  • 用户列表页 – users

下面就用定制文章列表页面为例说明。

定制文章(post)列表

/**********文章***********/

function add_new_posts_columns($book_columns) {

$new_columns[‘cb’] = ‘<input type=”checkbox” />’;

$new_columns[‘short_description’] = _x( ‘题目’, ‘column name’ );
$new_columns[‘author’] = __(‘出题人’);
$new_columns[‘categories’] = __(‘试题类型’);
$new_columns[‘date’] = _x(‘Date’, ‘column name’);
$new_columns[‘id’] = __(‘试题编号’);
return $new_columns;
}

function manage_posts_columns($column_name, $id) {
global $wpdb;
switch ($column_name) {
case ‘id’:
echo $id;
break;
case ‘short_description’:
echo the_excerpt();
default:
break;
}
}

add_filter(‘manage_posts_columns’, ‘add_new_posts_columns’);
add_action(‘manage_posts_custom_column’, ‘manage_posts_columns’, 10, 2);


wordpress后台post_column定制,加入列表摘要功能