【问题标题】:Setting up foreach in WordPress widget在 WordPress 小部件中设置 foreach
【发布时间】:2018-11-19 04:59:26
【问题描述】:

我一直在为我的链接小部件编写 foreach 循环。

我做了 var_export ($instance, true) 并且输出是

 'title' => ' Widget title',
 'image1' => 'img url',
 'link_title1' => 'Some link title',
 'target_type1' => '1',
 'link_url1' => 'some url',
 'image2' => '',
 'link_title2' => 'Some link title',
 'target_type2' => '1',
 'link_url2' => 'some url',
 'image3' => 'img url',
 'link_title3' => 'Some link title',
 'link_url3' => '',
 'image4' => 'img url',
 'link_title4' => 'Some link title',
 'link_url4' => '',
 'image5' => '',
 'link_title5' => 'Some link title',
 'link_url5' => '',

直到数值达到 10。我的首选输出是:

echo '<li>';
    if ($instance{'target_type' . $i} == 0) {
        echo '<img src=" '.$instance{'image' . $i} .' "><a href=" '. $instance{'link_url' . $i} .' ">' . $instance{'link_title' . $i} . '</a>';
    }
    else {
        echo '<img src=" '.$instance{'image' . $i} .' "><a href=" '. $instance{'link_url' . $i} .' " target="_blank">' . $instance{'link_title' . $i} . '</a>';
    }
echo '</li>';

但我不知道如何将 foreach 数组设置为开始工作的值。

【问题讨论】:

  • 尝试在if()中使用[..]而不是{}
  • 我应该在 foreach( $array as $value ) 中插入什么?

标签: php wordpress loops foreach


【解决方案1】:

根据您的问题,您正在寻找的似乎是for 循环,而不是foreach

for ($i = 1; $i <= 10; ++$i) {
    echo '<li>';
    if ($instance['target_type' . $i] === '0') {
        echo '<img src="' . $instance['image' . $i] . '"><a href="' . $instance['link_url' . $i] . '">' . $instance['link_title' . $i] . '</a>';
    } else {
        echo '<img src="' . $instance['image' . $i] . '"><a href="' . $instance['link_url' . $i] . '" target="_blank">' . $instance['link_title' . $i] . '</a>';
    }
    echo '</li>';
}

此循环将从 $i = 1 计数到 $i = 10。看起来这是您的意图...

【讨论】:

  • 我有一个 for 循环,但我开始寻找一个 foreach 循环,因为 for 循环也打印出空行(我有一个边框底部分配给 li)。或者有没有办法隐藏空的?
  • @Dariusz 使用条件来检查它们是否为空。如果您知道foreachfor,您应该知道如何使用if。这里的帮助就在第一个 echo '&lt;li&gt;'; 之前添加 if (empty($instance['image' . $i])) { continue; }
  • 仍在学习中,我昨天将 !empy 放在第一个 echo '&lt;li&gt;'; 之后而不是之前。谢谢你:)
  • @Dariusz 如果要测试多个属性是否为空,可以按照 Ovidash 的建议进行操作,另外指定多个以|| 分隔的条件,例如:empty($instance['image' . $i]) || empty($instance['link_url' . $i]) 等等...
猜你喜欢
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-06
  • 1970-01-01
相关资源
最近更新 更多