如果get_user_meta为空,如何隐藏字段

时间:2018-04-28 11:06:43

标签: php wordpress function shortcode

我正在使用短代码在WordPress上显示我的作者列表;我设法使社交网络字段工作,但如果字段为空,我无法隐藏它们。

我想我需要if声明,但我似乎无法找到使其有效的方法。

以下是我目前使用的代码:

function pippin_list_authors() {

    $authors = get_users(array(
            'orderby' => 'display_name',
            'count_totals' => false,
            'who' => 'authors',
            'id' => ''
        )
    );

    $list = '';


    if($authors) :

        $list .= '<div class="author-list">';

            foreach($authors as $author) :

                $list .= '<table>';

                    $archive_url = get_author_posts_url($author->ID);
                    $list .= '<tr>' .  get_avatar($author->user_email, 100);


                    $list .= '<br><br><a class="author-list-name" href="'. $archive_url . '" title="' . __('Vedi tutti i post ', 'pippin') . $author->display_name . '">' . $author->display_name . '</a><br>';
                    $list.= '<br><br><div class="author-social"><a href="' . get_user_meta( $author->ID, 'facebook', true). '"><i class="fa fa-facebook"><p style="font-size: 0; color: transparent;">'.A.'</p></i></a>';

                    $list .= '<a href="https://twitter.com/' . get_user_meta($author->ID, 'twitter', true). '"><i class="fa fa-twitter"><p style="font-size: 0; color: transparent;">'.A.'</p></i></a>';
                    $list .= '<p class="author-bio" style="max-height: 103px; overflow: hidden; ">' . get_user_meta($author->ID, 'description',  true) . '</p>';
                    $list .= '<div class="author-archive" style="text-align: center;"><a href="'. $archive_url . '" title="' . __('Vedi tutti i post ', 'pippin') . $author->display_name . '">' . __('Vedi tutti i post', 'pippin') . '</a></div>';

                $list .= '</tr></table>';

            endforeach;

        $list .= '</div>';

    endif;

    return $list;
}
add_shortcode('authors', 'pippin_list_authors');

2 个答案:

答案 0 :(得分:0)

如果您想检查变量$authors是否为空,请使用empty()功能。

试试这个:

if(!empty($authors)) {
    ...
}

答案 1 :(得分:0)

我建议你尽可能改变你的功能。  为每个社交链接和其他用户元素创建功能,如下所示:

$facebook_link = get_user_meta( $author->ID, 'facebook', true);

然后以这种方式调用它:

<?php if ($facebook_link !=='') { ?>
<p><a href="<?php echo $facebook_link; ?>"><i class="fa fa-facebook"></a></p>
<?php } ?>