如何按自定义字段列出用户?

时间:2013-10-11 10:02:15

标签: wordpress profile

我在标准数据库中有一个名为“company”的自定义用户字段。 我想在页面上输出“公司”与“Widgets Inc”匹配的用户的usermeta信息......

我该怎么做?

我认为我希望能够做到的是避免将其放在页面模板中,而是创建一个短代码来列出用户信息,其功能是按字段属性限制 - 即。 {listusers company =“Widgets Inc”}

但我不知道该怎么做。

由于

1 个答案:

答案 0 :(得分:0)

试试这个

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;
}

参考

Create a Shortcode

WP_User_Query