Не могу изменить список пользователей WordPress на панели администратора - PullRequest
0 голосов
/ 18 марта 2019

В настоящее время я пытаюсь изменить столбец имени на панели администратора 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:

enter image description here

Первые столбцы не входят в массив.Я пытался понять это, но без шансов.Я не понимаю.

1 Ответ

1 голос
/ 19 марта 2019

Первые столбцы не в массиве. Я пытался понять это но нет шансов. Я не понимаю.

Поскольку фильтр 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>' : '&#8212;'; // the custom output
    }
    return $output;
}, 10, 3 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...