如何为users.php正确设置头像自定义过滤器?

时间:2019-03-23 12:25:03

标签: php wordpress

我正在尝试为WordPress管理中的users.php中的化身设置自定义过滤器。我检查了用户是否有图片或上载了自己的图片。我将此信息写到用户的单独列中,并将其作为meta_key = 'avatar'并以值AvatarGravatar记录到数据库中。

avatar-filter-users-php

我尝试按照here的说明来实现它,但是没有成功。

这是我的功能,用于在用户列表顶部显示带有按钮的过滤器输入。

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

当我从Gravatar的下拉头像中选择并单击“过滤器”时,结果只会刷新页面。

0 个答案:

没有答案