【问题标题】:Search all user with user meta and meta value in wordpress在 wordpress 中使用用户元和元值搜索所有用户
【发布时间】:2019-01-31 12:57:24
【问题描述】:

我正在尝试实现搜索功能以获取具有相同元键和值的所有用户的列表。创建表单并在提交表单时将数据从表单传递到自定义模板页面以获得结果,但未获取具有相同元键的用户详细信息和元值。

$subject_name = $_POST['sub'];
   global $wpdb; 
       $user_query = new WP_User_Query( array( 'meta_key' => 'addedsubjects_detail', 'meta_value' => $subject_name ) ); 
        $userss = $user_query->get_results(); 
       if (!empty($users)) { 
           echo '</p> <ul>'; 
           foreach ($userss as $usrer){ 
               echo '</p> <li>' . $usrer->display_name . '</li> <p>'; 
           } echo '</ul> <p>'; 
       } else { 
           echo 'No users found'; 
       } 

【问题讨论】:

    标签: php wordpress search


    【解决方案1】:

    您的策略或查询没有任何问题。您的代码中有一些拼写错误 - $userss$usrer

    您不需要仅基于此 sn-p 包含 global $wpdb;,也许您需要它来做其他事情。

    在下面的代码中,变量名称$userss$usrer 已替换为$users$user,它们可以正常工作。

    $subject_name = $_POST['sub'];
    $user_query = new WP_User_Query( array( 'meta_key' => 'addedsubjects_detail', 'meta_value' => $subject_name ) );
    $users = $user_query->get_results();
    if (!empty($users)) {
        echo '</p> <ul>';
        foreach ($users as $user){
            echo '</p> <li>' . $user->display_name . '</li> <p>';
        } 
        echo '</ul> <p>';
    } else {
       echo 'No users found';
    }
    

    【讨论】:

    • 我在一个用户上设置了元数据并运行了代码,它工作了。根据原始代码中的拼写错误数量,我必须询问您是否验证了addedsubjects_detail 是为用户设置的。 echo get_user_meta( $id, 'addedsubjects_detail', true);
    • 实际上我的用户元是 json 和其他字符串的形式,所以这就是它无法匹配的原因。同样适用于单值形式的元键。我如何从 json 和字符串格式中获取它
    • 使用正则表达式怎么样? 'meta_compare' =&gt; 'REGEXP''meta_value' =&gt; '^.*' . $subject_name . '.*'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 2016-01-01
    相关资源
    最近更新 更多