有几个过滤器。我写了一个tutorial about adding custom columns, 这就是下面代码的来源。示例是在显示页面模板的“页面”帖子类型中添加一列。
你可以加入load-edit.php
和使用get_current_screen
获取正确的屏幕ID/过滤器。从那里你可以manage_{$screen->id}_columns
和manage_{$screen->post_type}_posts_custom_column
<?php
add_action(\'load-edit.php\', \'pmg_ltt_load\');
function pmg_ltt_load()
{
$screen = get_current_screen();
if(!isset($screen->post_type) || \'page\' != $screen->post_type)
return;
add_filter(
"manage_{$screen->id}_columns",
\'pmg_ltt_add_columns\'
);
add_action(
"manage_{$screen->post_type}_posts_custom_column",
\'pmg_ltt_column_cb\',
10,
2
);
}
manage_{$screen->id}_columns
是实际添加列和
manage_{$screen->post_type}_posts_custom_column
是您的回拨。
添加列:
<?php
function pmg_ltt_add_columns($cols)
{
// pay attention to the key, you\'ll use it later.
$cols[\'template\'] = __(\'Page Template\', \'pmg-list-table\');
return $cols;
}
回调函数将得到两个参数:列键(上面使用的!)和帖子ID。检查以确保它是您想要的列,然后使用
get_post_meta
(或其他适合情况的东西)获取要显示的内容。
<?php
function pmg_ltt_column_cb($col, $post_id)
{
static $templates;
if(\'template\' == $col)
{
if(empty($templates))
$templates = array_flip(get_page_templates());
$tmp = get_post_meta($post_id, \'_wp_page_template\', true);
if($tmp && isset($templates[$tmp]))
{
echo esc_html($templates[$tmp]);
}
else
{
esc_html_e(\'Default Template\', \'pmg-list-table\');
}
}
}