在CPT分类中显示自定义列

时间:2014-10-10 作者:EHerman

我正在尝试向我的一个自定义帖子类型添加一列,但仅在编辑分类法页面上。

我为我的自定义帖子类型“events”注册了一个名为“event categories”的分类法。

我可以成功地将自定义列添加到自定义帖子类型编辑屏幕,但似乎无法在编辑分类页面上使用挂钩。

我挖了一些岩芯,找到了钩子

$taxonomies = apply_filters( "manage_taxonomies_for_{$post_type}_columns", $taxonomies, $post_type );

的内部class-wp-posts-list-table.php 这让我相信,可以连接到此页面并向其添加自定义列。但当连接到添加列时,实际上什么都没有发生。

function events_color_column($defaults) {
    $defaults[\'event_cat_color\'] = \'Event Category Color\';
    return $defaults;
}

function events_column_content($column_name, $post_ID) {
    if ($column_name == \'event_cat_color\') {
       echo \'Event Color : #2432\';
    }
}
add_filter(\'manage_taxonomies_for_events_columns\', \'events_color_column\');
add_action(\'manage_taxonomies_for_events_column\', \'events_color_column_content\', 10, 2);
但是,如果我简单地将filter+操作更改为“manage\\u events\\u columns”和“manage\\u events\\u column”,那么自定义帖子类型屏幕上的内容就会起作用。

有人能看到我在这里做错了什么吗,或者这是一个需要在内核中修补的错误吗?

编辑:

通过执行以下操作,我能够连接到自定义分类页面以显示列标题:

对于其他任何面临类似问题的人,您需要传入页面ID。对我来说,以下方法有效:

  add_filter(\'manage_edit-event_categories_columns\', \'events_color_column\');
但我似乎不明白为什么没有使用

  add_action(\'manage_edit-event_categories_custom_column\', \'events_color_column_content\', 10, 2);
我也尝试过传入分类名称,即post类型名称,但似乎没有任何效果。我错过了什么?

1 个回复
SO网友:EHerman

我能够解决的最后一个工作挂钩是:

// adding an extra column to the event_cateogires page
// to display the color
function events_color_column($defaults) {
    $defaults[\'event_cat_color\'] = \'Event Category Color\';
    return $defaults;
}

function events_color_column_content($column_name, $post_ID) {  
    echo \'Event Color : #2432\';
}
add_filter(\'manage_edit-event_categories_columns\', \'events_color_column\');
add_action(\'manage_event_categories_custom_column\', \'events_color_column_content\', 10, 2);
使用

if ($column_name == \'event_cat_color\') {
       echo \'Event Color : #2432\';
    }
这个动作钩似乎不起作用。删除有条件的,只是重复一些东西似乎是可行的。

结束

相关推荐

Split loop into columns

我正在尝试将循环拆分为4列。我的逻辑有很大的缺陷,我的布局也有问题。这么简单的问题,但我正在努力解决。我基本上需要将每组四根柱子包装在一个容器“行”分区中。当然,剩下的任何柱子,即使少于四根,也要进行包装。<div class=\"twelve columns\"> <?php $i = 0; if (have_posts() ) : while ( have_posts() ) : the_post();