我目前正在尝试修改WordPress管理信息中心中的名称列。我在这里尝试过此代码,但无法正常工作:
add_action('manage_users_custom_column', 'modify_users_column_content', 10, 3 );
function modify_users_column_content( $value, $column_name, $user_id ) {
if ( $column_name === 'name' ) {
$value .= '<span> |</span>';
}
return $value;
}
当我error_log
column_name
参数时,我仅从用户管理插件UltimateMember中获得最后两列:
第一列不在数组内。我试图理解它,但是没有机会。我不明白。
答案 0 :(得分:1)
第一列不在数组内。我试图了解 但是没有机会。我不明白。
因为manage_users_custom_column
过滤器用于生成 custom 列的输出,而不是默认列(如“ Name”列)的输出。
但是,您可以通过将默认的“名称”列(键为name
)替换为自定义变量来实现所需的目标,如下所示:
add_filter( 'manage_users_columns', function( $columns ){
$columns2 = [];
// We could do $columns['name2'] = 'Name'; - but we are replacing a column.
foreach ( $columns as $key => $label ) {
if ( 'name' === $key )
$columns2['name2'] = 'Name';
else
$columns2[ $key ] = $label;
}
return $columns2;
} );
然后使用manage_users_custom_column
过滤器生成显示在自定义列(name2
)中的输出:
add_filter( 'manage_users_custom_column', function( $output, $column_name, $user_id ){
if ( 'name2' === $column_name ) {
$user_object = get_userdata( $user_id );
$name = trim( $user_object->first_name . ' ' . $user_object->last_name );
$output = $name ? $name . '<span> |</span>' : '—'; // the custom output
}
return $output;
}, 10, 3 );