php - 将自定义过滤器添加到用户管理列表

标签 php wordpress

我在默认用户列表页面中显示一个名为 company name 的自定义列。现在我想通过该列名 company name 过滤该用户列表页面。我如何添加我的自定义过滤器(meta_key 之一)以使用我的列过滤用户的默认列表。 请找到图片以获得更清晰的信息 -

enter image description here

//Code to filter user list by Status
function admin_users_filter( $query ){
global $pagenow,$wp_query;

if ( is_admin() && $pagenow=='users.php' && isset($_GET['abc']) && $_GET['abc'] != '') {
   $query->search_term = urldecode($_GET['abc']);

   global $wpdb;

    if (!is_null($query->search_term)) {

      $query = $wpdb->get_results( " SELECT DISTINCT account_status FROM wp_custom_user_details ORDER BY account_status ASC " );

    }    
}
}

add_filter( 'pre_user_query', 'admin_users_filter' );


add_action( 'restrict_manage_users', 'restrict_abc_manage_list' );
function restrict_abc_manage_list()
{
?>
<select name="abc" style="float: none;">
    <option value=""><?php _e('Filter By Status', 'baapf'); ?></option>
    <option value="1">Active</option>
    <option value="2">Inactive</option>


 </select> 
 <input id="post-query-submit" class="button" type="submit" value="Filter" name="">
<?php  
}

最佳答案

先生。 Eek 已经给出了在用户列表中添加自定义列的解决方案。所以我给出了如何为“公司”选项添加过滤器。给出了代码

function admin_users_filter( $query ){
global $pagenow,$wp_query;

if ( is_admin() && $pagenow=='users.php' && isset($_GET['abc']) && $_GET['abc'] != '') {
   $query->search_term = urldecode($_GET['abc']);

   global $wpdb;

    if (!is_null($query->search_term)) {

      $query->query_from .= " INNER JOIN {$wpdb->usermeta} ON " . 
        "{$wpdb->users}.ID={$wpdb->usermeta}.user_id AND " .
        "{$wpdb->usermeta}.meta_key='meta_key_name_here' AND "."{$wpdb->usermeta}.meta_value LIKE '%{$query->search_term}%'";

    }    
}
}

add_filter( 'pre_user_query', 'admin_users_filter' );


add_action( 'restrict_manage_users', 'restrict_abc_manage_list' );
function restrict_abc_manage_list()
{
?>
<select name="abc" style="float: none;">
    <option value=""><?php _e('Filter By College', 'baapf'); ?></option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>

 </select> 
 <input id="post-query-submit" class="button" type="submit" value="Filter" name="">
<?php  
}

发现任何疑问然后问...thxs

关于php - 将自定义过滤器添加到用户管理列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20520130/

相关文章:

PHP将嵌套的json插入到mySQl中

javascript - 带有视差的页面加载位置奇怪

php - 如何限制 woocommerce 中相关产品的标题长度

PHP 使用 PDO 语句清理输入

javascript - 有没有办法在Wordpress中异步加载脚本?

javascript - 单击时可下载文件的超链接,并为每次下载增加一个字段

php - 在 MySQL 中执行 md5 时安全转义

Wordpress - $wpdb->insert - MySQL NOW()

WordPress 多个单个帖子模板

javascript - 将 JavaScript 方法添加到 WordPress 的 onload 事件