В WordPress система управления пользователями играет решающую роль в контроле доступа и разрешений на веб-сайте. Хотя WordPress предоставляет несколько столбцов по умолчанию для информации о пользователе, могут возникнуть ситуации, когда вам потребуется добавить собственные столбцы для хранения дополнительных пользовательских данных. В этой статье будут рассмотрены несколько методов добавления пользовательских столбцов для пользователей WordPress, а также приведены примеры кода.
Метод 1: использование пользовательских метаданных
WordPress предоставляет пользовательскую метасистему, которая позволяет хранить дополнительную информацию для пользователей. Вы можете использовать функцию add_user_meta()для добавления пользовательских столбцов в метатаблицу пользователя. Вот пример:
// Add custom column to user meta
function add_custom_column_to_user_meta($user_id) {
$custom_value = 'Custom Value';
update_user_meta($user_id, 'custom_column', $custom_value);
}
add_action('user_register', 'add_custom_column_to_user_meta');
Метод 2: использование полей профиля пользователя
WordPress также позволяет добавлять на страницу профиля пользователя настраиваемые поля, которые могут действовать как настраиваемые столбцы. Вы можете использовать хуки show_user_profileи edit_user_profileдля отображения и сохранения настраиваемого поля. Вот пример:
// Add custom column to user profile
function add_custom_column_to_user_profile($user) {
$custom_value = get_user_meta($user->ID, 'custom_column', true);
?>
<h3>Custom Column</h3>
<table class="form-table">
<tr>
<th><label for="custom_column">Custom Column</label></th>
<td>
<input type="text" name="custom_column" id="custom_column" value="<?php echo esc_attr($custom_value); ?>" class="regular-text" />
</td>
</tr>
</table>
<?php
}
add_action('show_user_profile', 'add_custom_column_to_user_profile');
add_action('edit_user_profile', 'add_custom_column_to_user_profile');
function save_custom_column_in_user_profile($user_id) {
if (current_user_can('edit_user', $user_id)) {
$custom_value = sanitize_text_field($_POST['custom_column']);
update_user_meta($user_id, 'custom_column', $custom_value);
}
}
add_action('personal_options_update', 'save_custom_column_in_user_profile');
add_action('edit_user_profile_update', 'save_custom_column_in_user_profile');
Метод 3: использование специального плагина.
Если вы предпочитаете более модульный подход, вы можете создать собственный плагин для добавления специального столбца. Вот пример:
// Custom Column Plugin
/
* Plugin Name: Custom User Column
* Description: Adds a custom column to the WP Users table.
*/
function add_custom_column_to_users_table($columns) {
$columns['custom_column'] = 'Custom Column';
return $columns;
}
add_filter('manage_users_columns', 'add_custom_column_to_users_table');
function display_custom_column_content($value, $column_name, $user_id) {
if ('custom_column' == $column_name) {
$custom_value = get_user_meta($user_id, 'custom_column', true);
return $custom_value;
}
return $value;
}
add_action('manage_users_custom_column', 'display_custom_column_content', 10, 3);
function make_custom_column_sortable($columns) {
$columns['custom_column'] = 'custom_column';
return $columns;
}
add_filter('manage_users_sortable_columns', 'make_custom_column_sortable');
Добавление пользовательских столбцов для пользователей WordPress может расширить возможности управления пользователями и позволить хранить дополнительную информацию. В этой статье мы рассмотрели три различных метода: использование метаданных пользователя, полей профиля пользователя и специального плагина. В зависимости от ваших конкретных потребностей и предпочтений в области развития вы можете выбрать наиболее подходящий метод. Поэкспериментируйте с этими примерами кода, чтобы расширить функциональность вашей пользовательской системы WordPress.
Не забудьте настроить имена, значения и функциональные возможности столбцов в соответствии с вашими конкретными требованиями.
Реализуя настраиваемые столбцы, вы можете эффективно управлять пользовательскими данными и систематизировать их на своем сайте WordPress, обеспечивая более индивидуальный подход для ваших пользователей.