0

この関数は<li>タグを作成し、各liタグに一意の CSS クラス名を付けようとしています。番号を生成するループを作成しようとしましたが、これはタグforの番号 7 までカウントダウンするのではなく、番号 7 を生成しています。<li>

どんな助けでも大歓迎です!

function the_meta() {

if ( $keys = get_post_custom_keys() ) {
    echo "<ul class='post-meta'>\n";

 //tried to add this counter here to generate incremental numbers in the foreach loop
    for ($i = 0; $i <= 6; $i++) { } 

    foreach ( (array) $keys as $key ) {
        $keyt = trim($key);
        if ( is_protected_meta( $keyt, 'post' ) )
            continue;
        $values = array_map('trim', get_post_custom_values($key));
        $value = implode($values,', ');


        echo apply_filters('the_meta_key', "<li class='$i'><span class='post-meta-key'>$key:</span> $value</li>\n", $key, $value);

    }


    echo "</ul>\n";
}
  }
4

3 に答える 3

2

このコード行:

for ($i = 0; $i <= 6; $i++) { } 

6 になるまで $i を増やすだけなので、「メイン ループ」に到達すると、変数$iは同じ値になります。カウントする別のループがあるのはなぜですか?

現在のループ内にカウンターを実装できます。

$i = 1; //Before the loop , set a starting value.
    foreach ( (array) $keys as $key ) {
        $keyt = trim($key);
        if ( is_protected_meta( $keyt, 'post' ) )
            continue;
        $values = array_map('trim', get_post_custom_values($key));
        $value = implode($values,', ');


        echo apply_filters('the_meta_key', "<li class='$i'><span class='post-meta-key'>$key:</span> $value</li>\n", $key, $value);
$i++; //Increase by one!!
    }
于 2012-10-17T16:48:07.357 に答える
1

あなたの for ループは何もせずに繰り返すだけです。以下を使用する必要があります。

$i = 0;
foreach ( (array) $keys as $key ) {
   // ...
   $i++;
}
于 2012-10-17T16:48:35.353 に答える
1

最初の for ループは実際には何もしていませんでした (ご指摘のとおり)。変数を 0 で初期化し、使用するたびに出力してインクリメントします。

function the_meta() {

if ( $keys = get_post_custom_keys() ) {
echo "<ul class='post-meta'>\n";
$i=0;
foreach ( (array) $keys as $key ) {
    $keyt = trim($key);
    if ( is_protected_meta( $keyt, 'post' ) )
        continue;
    $values = array_map('trim', get_post_custom_values($key));
    $value = implode($values,', ');


    echo apply_filters('the_meta_key', "<li class='".$i++."'><span class='post-meta-key'>$key:</span> $value</li>\n", $key, $value);

}


echo "</ul>\n";
}
}
于 2012-10-17T16:47:00.303 に答える