在foreach之前检查是否为空

时间:2017-11-09 13:46:59

标签: php wordpress

我修改了一些代码,但我不是php级别的专家,需要一些帮助:)

<div class="emd-main emd-main-<?php echo $emd_state; ?>">

<?php if ( $userpro->memberlist_in_search_mode($args) ) { ?>

<?php $arr = $userpro_emd->users( $args );
    if (isset($arr['users']) && !empty($arr['users']) ) {
?>

<?php if (isset($arr['paginate']) && $args['emd_paginate'] && $args['emd_paginate_top'] == 1) { ?>
    <div class="userpro-paginate top"><?php echo $arr['paginate']; ?></div>
<?php } ?>

<div class="emd-list" data-layoutmode="<?php echo $args['emd_layout']; ?>">

    <?php foreach($arr['users'] as $user) { $user_id = $user->ID; ?>

        <?php $tk_image_1 = get_field('foto_1', 'user_'. $user_id); ?>

        <?php if (!empty($tk_image_1)) { ?>

            <div class="emd-user">

我有以下问题;我有一个显示成员网格的页面。每页的成员数为20(在插件设置中设置)。 foreach从这开始:

<?php foreach($arr['users'] as $user) { $user_id = $user->ID; ?>

之后我检查值$ tk_image_1是否为空,如果不为空,则继续。到目前为止一切都很好。

现在唯一的事情是;当我在一个页面上有20个成员时,其中8个$ tk_image_1是空的,那么它在该页面上显示12个成员...我认为在检查$ tk_image_1值之前,数组中的某些内容会对它们进行计数。

需要的是每页显示20个成员,如果$ tk_image_1不为空,则只显示一个成员。

有人可以帮我这个吗?

非常感谢!

此致 罗伯特

1 个答案:

答案 0 :(得分:-1)

问题的根源在于您正在使用包含您不想展示的用户的一组结果。要正确更正此问题,您需要更改此代码片段中发生的查询:$userpro_emd->users( $args )

->users()方法可以接受额外的$args,只允许您说出&#34;只有foto_1&#34; 的用户。这样你就不会试图在循环中执行魔法,然后留下没有足够的其他人来弥补失踪者foto_1的问题。