首页 > 解决方案 > 在 WP 管理员中更改自定义帖子类型的列标题名称

问题描述

我创建了 2 个自定义帖子类型,员工和电影。尝试在一个代码段中更改两种自定义帖子类型的标题列名称,但无法弄清楚。这是我到目前为止所拥有的:

function change_column_name( $columns ) {
    $screen = get_current_screen();
  
    if ( 'staff' == $screen -> post_type ) {
        $columns['title'] = 'Staff Name';
    }
    elseif ( 'movies' == $screen -> post_type ) {
        $columns['title'] = 'Movie Title';
    }
  
    return $columns;
}

add_filter( 'manage_' . $screen -> post_type . '_posts_columns', 'change_column_name' );

这是我要更改的标题:

在此处输入图像描述

标签: phpwordpress

解决方案


问题是您试图在$screen此处访问变量:

add_filter( 'manage_' . $screen -> post_type . '_posts_columns', 'change_column_name' );

...但这change_column_name在您设置它的功能之外,因此当您尝试将其用于您的add_filter.

您可以将自定义帖子类型直接添加到manage_XXX_posts_columns如下所示:

add_filter( 'manage_staff_posts_columns', 'change_column_name' );
add_filter( 'manage_movies_posts_columns', 'change_column_name' );

但是,无需为您要更改的每个 CPT 执行此操作 - 您可以连接到默认值,该默认值manage_posts_columns将适用于所有帖子,甚至 CPT:

add_filter( 'manage_posts_columns', 'change_column_name' );

您只需要在您的函数中检查 CPT 并只更改这些标题 - 您已经在这样做了,因此您无需更改函数中的任何内容即可这样做。


推荐阅读