如果USER_META下的字段使用GET_USERS()为空,则回显文本

时间:2012-10-06 作者:nicolas

使用get\\u users()我列出了用户及其信息。我在数据库中有一个自定义字段,people\\u lists\\u class。

<?php
    $blogusers = get_users(\'role=contributor&orderby=display_name\');
    foreach ($blogusers as $user) {
        echo 
        \'<li class="person member">\' .

        \'<a href="\' . get_author_posts_url($user->ID, $author_nicename) . \'">\' .
        \'<div class="user-thumbnail alignleft">\' .
        get_avatar($user->ID, 50) .
        \'</div>\' .
        \'</a>\' .


        /* \\/ \\/ \\/ Look at this: \\/ \\/ \\/ */
        \'<a href="\' . get_author_posts_url($user->ID, $author_nicename) . \'">\' .
        \'<h5 class="user-name user-info">\' .
        $user->display_name . \', \' . get_user_meta($user->ID, \'people_lists_class\', true) .
        \'</h5>\' .
        \'</a>\' .
        /* /\\ /\\ /\\ /\\ /\\ /\\ /\\ /\\ /\\ /\\ /\\ */

        \'<p class="user-title user-info">\' .
        get_user_meta($user->ID, \'people_lists_title\', true) .
        \'</p>\' .

        \'<p class="user-bio user-info">\' .
        get_user_meta($user->ID, \'description\', true) .
        \'</p>\' .

        \'<a href="\' . get_author_posts_url($user->ID, $author_nicename) . \'">\' .
        \'<p class="user-permalink user-info">\' .
        \' View articles by \' . $user->display_name .
        \'</p>\' .
        \'</a>\' .

        \'<div class="clear"></div>\' .
        \'</li>\';
    }
?>
要将“people\\u list\\u class”与“display\\u name”分开,我使用了一个逗号。但我只想用逗号表示用户是否在“people\\u lists\\u class”字段中写了什么。我是否可以以某种方式集成以下代码来实现这一点?

<?php if ( !empty( $user->people_lists_class ) ) {
    echo \', \';
}
else {
    echo \'\';
}
?>

1 个回复
最合适的回答,由SO网友:Adam 整理而成

当您有那么多代码要输出时,将其串联成一个字符串,这样就很难为他人和您自己阅读,也很难在出现问题时进行调试。

尝试使用此方法连接输出,

$blogusers = get_users(\'role=contributor&orderby=display_name\');
foreach ($blogusers as $user) {

    $name   = $user->display_name;
    $url    = get_author_posts_url($user->ID, $author_nicename);
    $class  = get_user_meta($user->ID, \'people_lists_class\', true);
    $title  = get_user_meta($user->ID, \'people_lists_title\', true);
    $desc   = get_user_meta($user->ID, \'people_lists_title\', true);
    $avatar = get_avatar($user->ID, 50);

    $html  = \'<li class="person member">\';
    $html .= \'<a href="\' . $url . \'"> <div class="user-thumbnail alignleft">\' . $avatar . \'</div></a>\';
    $html .= \'<a href="\' . $url . \'"><h5 class="user-name user-info">\' $name . ($class ? \', \' . $class : \'\') . \'</h5></a>\';
    $html .= \'<p class="user-title user-info">\' . $title . \'</p>\';
    $html .= \'<p class="user-bio user-info">\' . $desc . \'</p>\';
    $html .= \'<a href="\' . $url . \'"><p class="user-permalink user-info"> View articles by \' . $name . \'</p></a>\';
    $html .= \'<div class="clear"></div></li>\';

    echo $html;
}
好多了,嗯?

我们将所需的所有信息存储在变量中,然后传递给$html 这意味着我们可以一次又一次地重复使用相同的变量,而不会让我们的代码因冗长的函数和函数参数而不必要地膨胀,从而检索数据。不仅如此,它更易于阅读,如果出现问题,您会发现调试代码要比以其他方式调试代码容易得多。

有条件地显示逗号(, ) 是

 //shortened the line for brevity
 $name . ($class ? \', \' . $class : \'\') ... etc
所以$name 将显示AND IF 值保存在people_lists_class 它将打印以筛选逗号,后跟类名字段中的任何内容,例如。, class_name_here_bla_bla

最后看起来像是,

Bob Brown, Lowerclass Citizen

结束

相关推荐

Menu page with list of users

我需要一种方法来创建一个菜单页面,其中包含所有用户的列表,以便于管理。该列表将由无权访问“用户”菜单页的用户使用。页面需要有每个用户的用户ID、名称、注册日期、昵称、用户级别和用户角色你知道如何做到这一点吗?欢迎任何参考文档或教程。