如何将自定义列添加到“管理类别”表中?

时间:2011-01-13 作者:Scott B

我已经在帖子中这样做了,但我找不到正确的方法来引用category表的列。

我正在尝试向表中添加一个标题为“Image”的列,以便在显示类别的表格网格时,如果有一个类别图像分配给该类别,它将显示在网格中。

对我来说,第一步是确定适当的筛选器地址,以便将列插入表中。

我试过每一个都没用。。。

add_filter(\'manage_categories_columns\', \'myFunction\', 10, 2);
add_filter(\'manage_category_columns\', \'myFunction\', 10, 2);

function myFunction($cat_columns)
{
    $cat_columns[\'cat_image_thumb\'] = \'Image\';
    return $cat_columns;
}

3 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

过滤器为manage_{$screen->id}_columns, 和$screen->idedit-category, 给你manage_edit-category_columns.

我通过放置var_dump() 在里面get_column_headers(), 调用的print_column_headers(), 它被调用wp-admin/edit-tags.php, 编辑类别项目的页面。

SO网友:LeoDang

添加列名

function manage_my_category_columns($columns)
{
 // add \'My Column\'
 $columns[\'my_column\'] = \'My Column\';

 return $columns;
}
add_filter(\'manage_edit-category_columns\',\'manage_my_category_columns\');
接下来,我们要将数据放入其中:

function manage_category_custom_fields($deprecated,$column_name,$term_id)
{
 if ($column_name == \'my_column\') {
   echo \'test\';
 }
}
add_filter (\'manage_category_custom_column\', \'manage_category_custom_fields\', 10,3);
我希望这是有用的。

SO网友:simongcc

除了@LeoDang的示例之外,custom\\u列还基于以下过滤器应用于自定义分类法。

在Wordpress 3.8中测试和验证

1.Adding Custom Column header

// these filters will only affect custom column, the default column will not be affected
// filter: manage_edit-{$taxonomy}_columns
function custom_column_header( $columns ){
    $columns[\'header_name\'] = \'Header Name for Display\'; 

    return $columns;
}
add_filter( "manage_edit-shop-subcategory_columns", \'custom_column_header\', 10);
2。Adding Custom Column Data to corresponding Column Header

// parm order: value_to_display, $column_name, $tag->term_id
// filter: manage_{$taxonomy}_custom_column
function custom_column_content( $value, $column_name, $tax_id ){
    // var_dump( $column_name );
    // var_dump( $value );
    // var_dump( $tax_id );

    // for multiple custom column, you may consider using the column name to distinguish

    // although If clause is working, Switch is a more generic and well structured approach for multiple columns
    // if ($column_name === \'header_name\') {
        // echo \'1234\';
    // }
    switch( $column_name ) {
          case \'header_name1\':
               // your code here
               $value = \'header name 1\';
          break;

          case \'header_name2\':
               // your code here
               $value = \'header name 2\';
          break;

          // ... similarly for more columns
          default:
          break;
    } 

    return $value; // this is the display value
}
add_action( "manage_shop-subcategory_custom_column", \'custom_column_content\', 10, 3);
您也可以参考gist code shared online 有关任何更新和附加说明。

结束

相关推荐