我刚刚有一个项目,我需要创建一个按用户搜索的元表单,最后我为它创建了一个短代码,我只是对它做了一些修改,以向您展示如何使其与字段一起工作,所以只需将此代码粘贴到主题的函数中即可。php文件或插件文件:
add_shortcode(\'user_search\',\'My_User_search\');
function My_User_search($atts = null){
$out = user_search_form();
if (isset($_GET[\'user_search\']) && $_GET[\'user_search\'] == "search_users" && isset($_GET[\'search_by\'])){
global $wpdb;
$metakey = $_GET[\'search_by\'];
$args = array(\'meta_key\' => $metakey);
if (isset($_GET[\'s_value\'])){
$metavalue = $_GET[\'s_value\'];
$args[\'meta_value\'] = $metavalue;
}
$search_users = get_users($args);
$out .= \'<div class="user_search_results">\';
if (count($search_users) >0){
// here we loop over the users found and return whatever you want eg:
$out .= \'<ul>\';
foreach ($search_users as $user) {
$out .= \'<li>\' . $user->user_email . \'</li>\';
}
$out .= \'</ul>\';
}else{
$out .= \'No users found, try searching for something else.\';
}
$out .= \'</div>\';
}
return $out;
}
//function to display user search form
function user_search_form(){
$metavalue = $metakey = \'\';
if (isset($_GET[\'search_by\'])){
$metakey = $_GET[\'search_by\'];
}
if (isset($_GET[\'s_value\'])){
$metavalue = $_GET[\'s_value\'];
}
$re = \'<div class="user_search"><form action="" name="user_s" method="get">
<label for="search_by">Search by:</label>
<select id="search_by" name="search_by">\';
if ($metakey != \'\'){
$re.= \'"\';
$re.= ($metakey == "nickname") ? \'<option value="nickname" selected="selected">Name</option>\': \'<option value="nickname">Name</option>\';
$re.= ($metakey == "areacode") ? \'<option value="areacode" selected="selected">area code</option>\': \'<option value="areacode">area code</option>\';
$re.= ($metakey == "company") ? \'<option value="company" selected="selected">company</option>\': \'<option value="company">area code</option>\';
$re.= ($metakey == "affiliate") ? \'<option value="affiliate" selected="selected">affiliate</option>\': \'<option value="affiliate">area code</option>\';
}else{
$re .= \'
<option value="nickname">Name</option>
<option value="areacode">area code</option>
<option value="company">company</option>
<option value="affiliate">affiliate</option>\';
}
$re .= \'
</select>
<label for="s_value">Value:</label>
<input id="s_value" name="s_value" type="text" value="\'.$metavalue.\'"/>
<input name="user_search" id="user_search" type="hidden" value="search_users"/>
<input id="submit" type="submit" value="Search" />
</form></div>\';
return $re;
}
Usage:
只需创建一个页面或帖子,然后输入
[user_search]