Я пытаюсь настроить пользовательский фильтр для аватаров в users.php
при администрировании WordPress. Я проверил, есть ли у пользователя gravatar или загрузил свою фотографию. Я записываю эту информацию в отдельный столбец пользователей, а также записываю ее в базу данных как meta_key = 'avatar'
со значением Avatar
или Gravatar
.

Я пытался реализовать это, как объяснено здесь , но безуспешно.
Это моя функция, чтобы показать фильтр ввода с кнопкой в верхней части списка пользователей.
function filter_by_avatar($which)
{
// template for filtering
$st = '<select name="avatar_%s" style="float:none;margin-left:10px;">
<option value="">%s</option>%s</select>';
// generate options
$options = '<option value="avatar">Avatar</option>
<option value="gravatar">Gravatar</option>';
// combine template and options
$select = sprintf( $st, $which, __( 'Type of avatar...' ), $options );
// output <select> and submit button
echo $select;
submit_button(__( 'Filter' ), null, $which, false);
}
add_action('restrict_manage_users', 'filter_by_avatar');
А это filter
функция:
function filter_users_by_avatar_section($query)
{
global $pagenow;
if (is_admin() && 'users.php' == $pagenow) {
// put the filtering code in here
//$top = $_GET['avatar_top'];
$top = $_GET['avatar_avatar'];
//$bottom = $_GET['avatar_bottom'];
$bottom = $_GET['avatar_gravatar'];
if (!empty($top) OR !empty($bottom))
{
$section = !empty($top) ? $top : $bottom;
$meta_query = array (array (
'key' => 'avatar',
'value' => $section,
'compare' => 'LIKE'
));
$query->set('meta_key', 'avatar');
$query->set('meta_query', $meta_query);
}
}
}
Когда я выбираю из выпадающего списка Аватар Граватара и нажимаю Фильтр, результат только обновляет страницу.