我在标准数据库中有一个自定义用户字段,称为“公司”。我想将“公司”与“Widgets Inc”匹配的用户的用户元信息输出到页面上......
我怎么做?
我想我想做的是避免将其放入页面模板中,而是创建一个短代码来列出用户信息,并具有受字段属性限制的功能 - 即。{listusers company="Widgets Inc"}
但我不知道该怎么做。
谢谢
试试这个
add_shortcode( 'list-company-users', 'company_users_shortcode' );
function company_users_shortcode($atts)
{
ob_start();
$query = array('meta_key' => 'company', 'meta_value' => 'Widgets Inc');
$user_query = new WP_User_Query($query);
// User Loop
if (!empty($user_query->results)) {
foreach ($user_query->results as $user) {
echo '<p>' . $user->display_name . '</p>';
}
} else {
echo 'No users found.';
}
$myvariable = ob_get_clean();
return $myvariable;
}
这是你的短代码[list-company-users]
要在短代码中定义使用参数,您可以这样做
[list-company-users company="Widgets Inc"]
现在您必须通过以下方式提取短代码中传递的值shortcode_atts()
extract(shortcode_atts(array("company" => 0), $atts));
function company_users_shortcode($atts)
{
ob_start();
extract(shortcode_atts(array("company" => 0), $atts));
$query = array('meta_key' => 'company', 'meta_value' => $atts[company]);
$user_query = new WP_User_Query($query);
// User Loop
if (!empty($user_query->results)) {
foreach ($user_query->results as $user) {
echo '<p>' . $user->display_name . '</p>';
}
} else {
echo 'No users found.';
}
$myvariable = ob_get_clean();
return $myvariable;
}