2012-02-25 7 views
0

各番号をリストする代わりに、このPHPブロックを書くにはどうすればよいでしょうか?PHPを書くより効率的な方法

<?php  $name1  = get_post_meta(get_the_ID(), 'ch_client_name1', TRUE); 
      $name2  = get_post_meta(get_the_ID(), 'ch_client_name2', TRUE); 
      $name3  = get_post_meta(get_the_ID(), 'ch_client_name3', TRUE); 
      $name4  = get_post_meta(get_the_ID(), 'ch_client_name4', TRUE); 
      $name5  = get_post_meta(get_the_ID(), 'ch_client_name5', TRUE); 

      ?> 

ここでは、使用するHTMLを示します。 リストに5つの名前のそれぞれを表示させたいと思います。

あなたはそれのように行うことができます
  <li id="<?php the_ID(); ?>" "> 
        <?php echo $name1; ?> 
      </li> 

答えて

0

<?php 

    for($i = 1; $i <= 5; $i++) { 
    $nameN = "name{$i}"; 
    $$nameN = get_post_meta(get_the_ID(), "ch_client_name{$i}", TRUE); 
    // or $name[$i], if you can 

    ?> 
     <li id="<?php the_ID(); ?>"> 
     <?php echo $$nameN; ?> 
     </li> 
    <?php 
    } 
+0

リンクを追加:http://br2.php.net/manual/en/language.variables.variable.php –

+1

私はあなたの解決策をDavidに感謝しました。 get_post_dataをget_post_metaに変更しなければならず、完璧に機能しました。乾杯 – user537137

1
$names = array('ch_client_name1', 'ch_client_name2', 'ch_client_name3', 'ch_client_name4', 'ch_client_name5') 
foreach($names as $name) { 
    $realname = get_post_meta(get_the_ID()), $name, TRUE); 
    echo '<li id="'. theID() .'">'. $realname .'</li>'; 
} 
2

これは動作します:

for($i=1;$i<=5;$i++){ 
    ${'name'.$i} = get_post_meta(get_the_ID(), 'ch_client_name'.$i, TRUE); 
} 
0
<?php 
$numberOfNames=5; 
$names = array(); 
for($i=1; $i<=$numberOfNames; $i++) 
    $names[] = get_post_meta(get_the_ID(), 'ch_client_name'.$i, TRUE); 
foreach($names as $k=>$name){ 
    echo "<li id=\"".($k+1)."\">\n$name\n</li>"; 
} 
?> 
0

あなたも、すべてのポストを取得しており、これを使用して検討する必要がありますメタ(カスタム)フィールドを一度に:

$meta = get_post_custom($post_id = get_the_ID()); 
for($i = 1; $i <= 5; $i++) 
    echo '<li id="client-'.$post_id.'-'.$i.'">'.$meta["ch_client_name{$i}"].'</li>'; 

彼はこのために尋ねられたとき、私はまた、問題のエラーを修正注:

<li id="<?php the_ID(); ?>" "> 

私は修正された問題があった。

  • HTML @id属性が数字で始めることはできません(接頭辞は"client-{$post_id}-"および
  • the_ID()は投稿I @id属性に必要な一意の値を持つ代わりに、5つの結果のそれぞれについてDを指定します。
関連する問題