在输出html

时间:2016-02-22 17:21:30

标签: php mysql wordpress custom-post-type

我有一个Wordpress用户查询,它从自定义角色的用户列表中回显出大量信息。一切都正常,但我正在努力为一个非常可能的结果做准备。代码从下面开始:

$args = array(
    'role' => 'BBCDirectory',
    'search' => ''
);

// The Query
$user_query = new WP_User_Query( $args );

// User Loop
if ( ! empty( $user_query->results ) ) {
    foreach ( $user_query->results as $user ) {
        echo '<div class="singleperson">'
         . '<div style="margin:50px 0; height:1px; line-height:1px; background:#CCCCCC;"></div><span class="bbcavatar" style="float:left; margin:0 20px 20px 0;"><a href="' . get_author_posts_url($user->ID) . '"><img src="' . get_author_image_url( $user->ID ) . '" alt="" /></a></span>'
         . '<h3 class="bbcname"><a href="' . get_author_posts_url($user->ID) . '">' . esc_html( $user->display_name ) . '</a></h3>'
         . '<span class="bbclocation"><em>' . esc_html( $user->bbccity ) . ', ' . esc_html( $user->bbcstate ) . '</em></span>'
         . '<span class="bbcabout"><strong style="text-transform:uppercase; font-size:1.25em;">About Me</strong><br />' . esc_textarea( $user->bbcabout ) . '</span>'
         . '<span class="bbcclassschedule"><strong style="text-transform:uppercase; font-size:1.25em;">My Class Schedule</strong><br />' . esc_html( $user->bbcclassschedule ) . '</span>'
         . '<span class="contactheader"><strong style="text-transform:uppercase; font-size:1.25em;">Contact ' . esc_html( $user->first_name ) . '</strong><br />'
         . '<span class="bbcwebsite"><a target="_blank" href="' . esc_html( $user->bbcwebsite ) . '"><i class="fa fa-globe fa-2x"></i></a></span>'
         . '<span class="bbcemail"><a href="mailto:' . esc_html( $user->bbcemail ) . '"><i class="fa fa-envelope-o fa-2x"></i></a></span>'
         . '<span class="bbcfacebook"><a target="_blank" href="' . esc_html( $user->bbcfacebook ) . '"><i class="fa fa-facebook fa-2x"></i></a></span>'
         . '<span class="bbctwitter"><a target="_blank" href="http://twitter.com/' . esc_html( $user->bbctwitter ) . '"><i class="fa fa-twitter fa-2x"></i></a></span>'
         . '<span class="bbcphone"><a id="bbcphone" href="#null"><i class="fa fa-phone fa-2x"></i></a><span class="bbcphonenumber">' . esc_html( $user->bbcphone ) . '</span></span>'
         . '</div>'
         ;
    }

所以这可以提供各种各样的东西 - 电子邮件地址,网站,社交媒体资料等。我想要做的是实际测试以确保这些东西在数据库中,如果不是。 ..不要试图回应那部分。例如,如果他们没有Facebook页面,请不要回显以

开头的行
         . '<span class="bbcfacebook"><a target="_blank" href="' . esc_html( $user->bbcfacebook ) . '"><i class="fa fa-facebook fa-2x"></i></a></span>'

看起来非常简单,但我回应内容的方式可能不是最有利于条件语句。也许我应该以不同的方式尝试该查询?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试这样做

// The Query
$user_query = new WP_User_Query( $args );
$return = '';

// User Loop
if ( ! empty( $user_query->results ) ) {
    foreach ( $user_query->results as $user ) {

        $user_id = $user->ID;
        $display_name = $user->display_name;
        $location = isset($user->bbcstate) && isset($user->bbccity);
        $about = $user->bbcabout;
        $schedule = $user->bbcclassschedule;
        $user_name = $user->first_name;
        $website = $user->bbcwebsite;
        $email = $user->bbcemail;
        $facebook = $user->bbcfacebook;
        $twitter = $user->bbctwitter;
        $phone = $user->bbcphone;

        $return .= '<div class="singleperson">
                    <div style="margin:50px 0; height:1px; line-height:1px; background:#CCCCCC;">/div>';
        if ($user_id != '') {
            $return .= '<span class="bbcavatar" style="float:left; margin:0 20px 20px 0;"><a href="' . get_author_posts_url($user->ID) . '"><img src="' . get_author_image_url( $user->ID ) . '" alt="" /></a></span>';
        }
        if ($display_name != '') {
            $return .= '<h3 class="bbcname"><a href="' . get_author_posts_url($user->ID) . '">' . esc_html( $user->display_name ) . '</a></h3>';
        }

        ...

        $return .= '</div>';
    }

    return $return; // or echo $return;
}

只需填写if:)