Ostatnio dostałem zapytanie, czy mógłbym przygotować jakiś moduł, który by na liście użytkowników WordPressa – oprócz standardowych danych – wyświetlał również ID danego użytkownika. Nie będę rozpisywał się nad powodami takiego „zapotrzebowania”, bo mogą być one (prze)różne. Ważny jest ostateczny efekt.
Spis treści w artykule
Dodatkowa kolumna z ID użytkownika w WordPressie
Oczywiście ID użytkownika można sprawdzić na kilka sposobów – zaczynając od spojrzenia na link „powiązany” z nazwą użytkownika (mowa o linkach wewnątrz panelu zarządzania WordPressem), a kończąc na analizie tabel SQL (MySQL) w phpMyAdmin. Ale są to wszystko działania wymagające jednak pewnej wiedzy i – czasem – odpowiednich uprawnień, a do tego nie są tak automatyczne i masowe jak dodanie odpowiedniej kolumny na liście użytkowników.
Na szczęście – jak to często w WordPressie bywa – z pomocą przychodzi nam kilka linijek kodu, który możemy dodać do pliku functions.php:
// Dodatkowa kolumna
function webinsider_wp_manage_users_columns_add( $columns ) {
return array_merge( $columns,
array( 'userid' => __( 'UID' ) ) );
}
add_filter( 'manage_users_columns' , 'webinsider_wp_manage_users_columns_add' );
// Pobranie i wyświetlenie ID użytkowników
function webinsider_wp_manage_users_columns_add_content( $content, $column_name, $userid ) {
if ( $column_name === 'userid' ) {
return $userid;
}
return $content;
}
add_action( 'manage_users_custom_column', 'webinsider_wp_manage_users_columns_add_content', 10, 3 );
Do tego warto dodać jeszcze jeden fragment, dzięki któremu zapanujemy nad szerokością kolumny, która w standardzie jest zdecydowanie za szeroka, zwłaszcza patrząc na jej zawartość:
// Wygląd (szerokość) kolumny
function webinsider_wp_manage_users_columns_css(){
echo '<style>.column-userid { width: 3em; }</style>';
}
add_action( 'admin_head', 'webinsider_wp_manage_users_columns_css' );
W efekcie na liście użytkowników pojawi się dodatkowa kolumna „UID”, w której znajdziemy ID poszczególnych użytkowników WordPressa:
Oczywiście w ten sposób możecie wyświetlić również kolumny z innymi danymi, zależnie od swoich potrzeb.
PRyC WP: User(s) ID, czyli gotowe rozwiązanie
Dla osób, które z takich czy innych powodów nie chcą lub obawiają się, że mogą podczas samodzielnej modyfikacji pliku functions.php coś „nabroić” mogę zaproponować instalację np. wtyczki „PRyC WP: User(s) ID”, którą wystarczy tylko zainstalować i uruchomić:
Kasujemy niepotrzebne (standardowe) kolumny
A skoro przy temacie kolumn na liście użytkowników już jestem, to od razu pokażę jak można pozbyć się niepotrzebnych kolumn, np. „wpisy” i „Email”:
function webinsider_wp_manage_users_columns_unset ( $column_headers ) {
unset( $column_headers['user_jetpack'] );
unset( $column_headers['email'] );
return $column_headers;
}
add_action( 'manage_users_columns','webinsider_wp_manage_users_columns_unset', 999 );
W standardzie mamy kolumny:
- Nazwa użytkownika (username)
- Podpis (name)
- E-mail (email)
- Rola (role)
- Wpisy (posts)
- JetPack (user_jetpack)
Czy i ew. co „wywalić” oczywiście pozostawiam Wam, ja sam zazwyczaj najszybciej żegnam się z kolumną „user_jetpack”, która chyba jeszcze nigdy do niczego mi się nie przydała, a jakiś czas temu się pojawiła (tam, gdzie korzystam z JetPacka i mam odpowiednio skonfigurowanego z tą usługą użytkownika).
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
Ciekawy tutorial. Dzięki.
A co, jeśli chciałbym mieć dodatkową kolumnę, gdzie będzie pokazana liczba logowań danego użytkownika od początku rejestracji?
Od razu wyjaśniam, że kolumna „Odwiedziny” nie zlicza nic i wskazuje ciągle wartość ‚0’
Jest to możliwe, o ile będziesz miał takie informacje. Dlatego wcześniej musisz dodać mechanizm zliczający logowania danego użytkownika, bo jeśli dobrze kojarzę, to WP tego w standardzie nie robi.