1

我想到了一个while循环,但找不到解决方法:

$foo1 = get_post_meta( $post->ID, '_item1', true );
if (!empty($foo1)){
    echo  ("<div class='$foo1'></div>"); 
}

$foo2 = get_post_meta( $post->ID, '_item2', true );
if (!empty($foo2)){
    echo  ("<div class='$foo2'></div>"); 
}

等等......一百次,直到我达到 $foo100 和 _item100 有什么想法可以实现这一点,不要一遍又一遍地重复这 4 行吗?

4

2 回答 2

2

你不需要变量变量,而只是一个for像这样的循环:

for( $i=1; $i<101; $i++ ) {
  $klass = get_post_meta( $post->ID, '_item' . $i, true );
  if( !empty($klass) ) {
     echo "<div class='$klass'></div>"; 
  }
}

只要您$fooX以后不需要这些变量,这就会起作用。如果需要它们,则必须使用提到的变量变量或数组来收集所有值。

于 2013-06-03T22:12:56.460 回答
1

你在while循环中思考得很好

你可以使用:

   $counter = 1;
   while ($counter< 100) // or whatever limit you have
   {
       $foo = get_post_meta( $post->ID, '_item' . $counter , true );
         if (!empty($foo)){
           echo  ("<div class='$foo' . $counter .' ></div>"); 
              }
     $counter++;
    } 

如果您复制此代码,您可能会因为字符串连接而遇到一些编译错误。

基本上,您需要将“_item”字符串与您当前的 $counter 连接起来。

以下是一些字符串连接示例。

如果您有任何问题,请告诉我。

于 2013-06-03T22:14:19.683 回答