自定义搜索表单以仅显示用户

时间:2013-05-08 作者:Romes

我正在尝试为我的一个页面构建自定义搜索表单。我需要搜索表单才能搜索用户。它不仅需要搜索用户,还需要按名字、姓氏等进行搜索。。类似于此:

enter image description here

默认WP搜索不允许我在我的网站上搜索用户。我正在使用“搜索所有内容”插件,但仍然无法获取任何用户数据以显示在我的搜索中。

非常感谢您的帮助。

编辑以下是我的表格:

<?php 
    global $wpdb;
    $authors = $wpdb->get_results("SELECT ID, display_name FROM $wpdb->users WHERE user_nicename != \'admin\' ORDER BY display_name LIMIT 10"); 
?>

<form action="<?php bloginfo(\'siteurl\'); ?>" id="memberform" method="get">
    <div class="first_name">
        <select id="firstNameDrop" name="s">
            <option selected value="First Name">First Name</option>
            <?php
                foreach($authors as $author) {
                    $author_info = get_userdata($author->ID);
                    $name = $author_info->first_name;
                    echo \'<option value="\'.$name.\'">\'.$name.\'</option>\';
                }
            ?>
        </select>
    </div>
    <input type="submit" class="submit" name="submit" value="Search" />
</form>
这允许我将所有用户的下拉框按名字排序,当我点击搜索时,它会将我带到我的搜索页面,并调出与我的搜索相对应的所有帖子。这一切都很好,但我只需要它来获取用户信息,比如名字、姓氏、头像、描述等。。而不是帖子。

1 个回复
SO网友:s_ha_dum

我不会为您编写表单,而是创建一个表单并将其提交到页面进行处理,或者使用AJAX API. 然后使用WP_User_Query 实际搜索用户。这是一个非常WP_Query-类似的类,该类应允许您执行所有需要的操作,包括从$wpdb->usermeta 表通过传递meta_query 参数类似于Codex中的以下参数:

$args = array(
    \'meta_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'key\' => \'country\',
            \'value\' => \'Israel\',
            \'compare\' => \'=\'
        ),
        array(
            \'key\' => \'age\',
            \'value\' => array( 20, 30 ),
            \'type\' => \'numeric\',
            \'compare\' => \'BETWEEN\'
        )
    )
 );
$user_query = new WP_User_Query( $args );
如果您有问题,请编辑问题以包含您的(尝试工作)代码和更多详细信息,我将编辑答案。

结束

相关推荐

Child Pages Loop

如果有人能帮忙那就太好了。我找到了一段我使用过的代码,它基本上完成了我希望它完成的任务,列出了父级的子页面,如果有缩略图,则添加缩略图,并添加了自定义摘录。然而,问题是我不能添加个人<?php post_class(); ?> 对于循环中的div,它使用来自父级的类并对子页重复。<?php $child_pages = $wpdb->get_results(\"SELECT * FROM $wpdb->posts WHERE post_parent = \".$pos