Как правильно настроить пользовательский фильтр аватара для users.php? - PullRequest
1 голос
/ 23 марта 2019

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

avatar-filter-users-php

Я пытался реализовать это, как объяснено здесь , но безуспешно.

Это моя функция, чтобы показать фильтр ввода с кнопкой в ​​верхней части списка пользователей.

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);
        }
    }
}

Когда я выбираю из выпадающего списка Аватар Граватара и нажимаю Фильтр, результат только обновляет страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...