如何使用序列化元值搜索WP中的用户

时间:2017-03-15 10:46:38

标签: wordpress

我可以让用户使用$all_users = get_users(['meta_key' => 'first_name', 'meta_value' => 'john']);,但我现在遇到一个小问题,因为我尝试获取的功能的元值是序列化的。

我已从表格中复制了一行,如下所示。

103  wp_capabilities       a:1:{s:12:"cs_candidate";b:1;}  

我可以获取值并将其反序列化,但不确定是否有办法在WP中执行此操作。

更新

要添加更多说明,我指的是此页面https://codex.wordpress.org/Function_Reference/get_users或以下功能:

<?php $args = array(
    'blog_id'      => $GLOBALS['blog_id'],
    'role'         => '',
    'role__in'     => array(),
    'role__not_in' => array(),
    'meta_key'     => '',
    'meta_value'   => '',
    'meta_compare' => '',
    'meta_query'   => array(),
    'date_query'   => array(),        
    'include'      => array(),
    'exclude'      => array(),
    'orderby'      => 'login',
    'order'        => 'ASC',
    'offset'       => '',
    'search'       => '',
    'number'       => '',
    'count_total'  => false,
    'fields'       => 'all',
    'who'          => ''
 ); 
get_users( $args ); ?>

字段中的'meta_value' => '',部分已序列化a:1:{s:12:"cs_candidate";b:1;}

1 个答案:

答案 0 :(得分:1)

您无法同时搜索反序列化搜索,我很害怕。搜索序列化数据总是有点麻烦。

如果您确定要搜索的数据结构,可以执行以下操作:

$meta_args = [
        'key'     => 'wp_capabilities',
        'value'   => 'cs_candidate";b:1',
        'compare' => 'LIKE'
    ];

$users = get_users(['meta_query' => $meta_args]);

它不是很漂亮,但是应该这样做。