2011-11-16 4 views
1

これは私の最初の投稿ですので、できるだけ徹底的にしようとしています。私はPHPにとっても非常に新しいです。新しいループのために配列からコンテンツを保存する

これはPODS CMSプラグインを使用しているWordPressのサイトですので、wordpress画像アップローダは1つの画像アップロードの複数のサイズにアクセスできます。概念は、私は "チーム"と呼ばれるデータのグループがあり、このグループには画像、タイトル、バイオの3つのフィールドがあります。順序付けされていないリストを含むチームメンバーのサムネイルのリストを生成し、別のdivを含む別のメンバーのサムネイルのリストを生成します。イメージ、タイトル、およびバイオのバージョンが大きくなります。私が午前現在の問題は、私がのために画像のURLの全てを取得することができるということです

<ul> 
<li> <img src="thumbnailurl.jpg"/></li> 
<li> <img src="thumbnailurl2.jpg"/></li> 
<li> <img src="thumbnailurl3.jpg"/></li> 
</ul> 
<div class="panes"> 
<div><h2>Title 1</h2> <p> BIO CONTENT </p></div> 
<div><h2>Title 1</h2> <p> BIO CONTENT </p></div> 
<div><h2>Title 1</h2> <p> BIO CONTENT </p></div> 
</div> 

:私は基本的にサムネイルが究極のHTML出力は次のようになり、タブ

あるタブ付きコンテンツ領域を作っています最初のレコードが、2番目のforeachの2番目のレコードになると、新しいレコードの配列を再実行する必要がありますが、どのように把握できません。

<?php 
    $Record = new Pod('the_team'); 
    $Record->findRecords($orderby = 't.id DESC'); 
    $mylist=array(); 

    while ($Record->fetchRecord()) 
    { 
    $image_array = $Record->get_field('photo'); 
    $title = $Record->get_field('name'); 
    $desc = $Record->get_field('bio'); 
    $id = $Record->get_field('id'); 
    $mylist[] = array('name' => $title, 'desc' => $desc, 'id'=> $id); 
?> 

<ul> 
<?php 
    foreach($image_array as $i => $image) 
    { 
    $image_thumb_url = wp_get_attachment_image_src($image['ID'], 'thumbnail', false); 
    $image_thumb_url = $image_thumb_url[0]; 

    $image_med_url = wp_get_attachment_image_src($image['ID'], 'medium', false); 
    $image_med_url = $image_med_url[0]; 

    $image_large_url = wp_get_attachment_image_src($image['ID'], 'large', false); 
    $image_large_url = $image_large_url[0]; 

    $image_full_url = wp_get_attachment_image_src($image['ID'], 'full', false); 
    $image_full_url = $image_full_url[0]; 
?> 
    <li> 
    <a href="<?php echo $image_large_url; ?>"> 
     <img src="<?php echo $image_thumb_url; ?>" /> 
    </a> 
    </li> 
<?php } ?> 
<?php } ?> 
</ul> 

<div class="panes"> 
<?php 
    foreach ($mylist as $person) 
    { ?> 
    <div class="team-member" id="member<?php echo $person['id']; ?>"> 
     <h2><?php echo $person['name']; ?></h2> 
     <?php echo $person['desc']; ?> 
     <a href="<?php echo $person['photo']; ?>"> 
     <img src="<?php echo $person['photo']; ?>" /> 
     </a> 
<?php } ?> 
</div> 
</div> 

Okkkayを..だから私は、最初の問題は解決してい!!!しかし、それは第二のものをもたらします。

<?php 

$Record = new Pod('the_team'); 
$Record->findRecords($orderby = 't.id DESC'); 
$mylist=array(); 
$cnt = 0; 
?> 
    <ul class="tabs"> 
<?php 
while ($Record->fetchRecord()) : 
    $mylist[$cnt] = array(
    'name' => $Record->get_field('name'), 
    'desc' => $Record->get_field('bio'), 
    'id'=> $Record->get_field('id') 
); 
    ?> 
    <?php 
    $image_array = $Record->get_field('photo'); 
    foreach($image_array as $i => $image) : 
    $image_thumb_url = wp_get_attachment_image_src($image['ID'], 'thumbnail', false); 
    $mylist[$cnt]['img_thumb'] = $image_thumb_url[0]; 

    $image_med_url = wp_get_attachment_image_src($image['ID'], 'medium', false); 
    $mylist[$cnt]['img_med'] = $image_med_url[0]; 

    $image_large_url = wp_get_attachment_image_src($image['ID'], 'large', false); 
    $mylist[$cnt]['img_large'] = $image_large_url[0]; 

    $image_full_url = wp_get_attachment_image_src($image['ID'], 'full', false); 
    $mylist[$cnt]['img_full'] = $image_full_url[0]; 
    ?> 
    <li> 
     <a href="#"> 
     <img src="<?php echo $image_thumb_url[0]; ?>" /> 
     </a> 
    </li> 
    <?php endforeach; ?> 
<?php 
    $cnt++; 
endwhile; 
?> </ul> 

    <div class="panes"> 
    <?php foreach ($mylist as $person) : ?> 
    <div class="team-member" id="member<?php echo $person['id']; ?>"><div id="member-info"><h2>Meet <?php echo $person['name']; ?></h2> 
     <?php echo $person['desc']; ?></div> 
     <a href="<?php echo $person['img_large']; ?>" rel="prettyPhoto"> 
     <img src="<?php echo $person['img_med']; ?>" style="float:left" /> 
     </a> 
    </div> 
    <?php endforeach; ?> 
    </div> 
+0

ここで何が起こっているのかは分かりません。無関係なコードを削除してみてください(例:$ image_med_urlのような多くの変数を設定していますが、決してそれらを使用しないでください) –

+0

私はまだ疑問に混乱しています。ループは '$ Record-> fetchRecord()'から次のレコードをフェッチしますか? –

答えて

0

を私は何あなたの問題を見ることができると思う:私は、私は第二の画像フィールドを必要とするか、または<div>のためのアレイに<li>に配列にちょうど最初の画像を呼び出し、ちょうど第二の画像するか考えていますです。 2番目のforeachループはwhileループの恩恵を受けることはありません。このパスをたどってフェッチされたデータをリループする場合は、唯一のオプションです。ほとんどの場合、2番目のループに必要なコードを元のループに書き込む方法があるので、これを行うことはお勧めしません。

この例では、2番目のforeachループをwhileループに組み込むコードを書き直しました(必要性を否定しています)。このように、すべてのレコードには$html$html2という新しいエントリがあります。ループしたら、あなたが探している完全なhtmlを生成するために連結できる2つの変数があります。

<?php 
$Record = new Pod('the_team'); 
$Record->findRecords($orderby = 't.id DESC'); 

// Custom variables 
$html = "<ul>\n"; 
$html2 = ""; 
$image_type=array('thumbnail','medium','large','full'); 

while ($Record->fetchRecord()) { 

    $image_array = $Record->get_field('photo'); 
    $title = $Record->get_field('name'); 
    $desc = $Record->get_field('bio'); 
    $id = $Record->get_field('id'); 

    foreach($image_array as $i => $image) { 

     foreach ($image_type as $type) { 
      $image_temp = wp_get_attachment_image_src($image['ID'], $type , false); 
      $image_url[$type] = $image_temp[0]; 
     } # End of Foreach loop 

     // Create List HTML in primary output variable 
     $html .= "<li>\n". 
     "<a href=\"" . $image_url['large'] ."\">\n". 
     "<img src=\"" . $image_url['thumbnail'] ."\" />\n". 
     "</a>\n". 
     "</li>\n"; 
    } #End of foreach loop 

    // Create User HTML in secondary output variable 
    $html2 .= "\t<div class=\"team-member\" id=\"member" . $id . ">\n". 
       "<h2>" . $title . "</h2>\n". 
       $desc . "\n". 
       "<a href=\"" . $photo . ">\n". # $photo is not declared in this code (will error) 
       "<img src=\"" . $photo . " />\n". # as above comment 
       "</a>\n"; 
       "</div>\n"; 
} # End of while loop 

// Wrap up the list elements, concat the secondary HTML. 
$html .= "</ul>\n\n". 
     "<div class=\"panes\">\n". 
     $html2 . "\n". 
     "</div>\n"; 

echo $html; 
?> 
+0

さて、私は自分のページにコードをドロップするだけで、何が起こるかを見ていました。それは動作しません(明らかにあなたが$写真が定義されていないと言ったように)が、それはまったくエラーを与えるイベントではなかったようです。 あなたのコードを見ると、2番目のループは$ htmlの前に閉じているので、whileステートメントの恩恵を受けていません。正しいですか? –

+0

whileループがどこで終了するかを示すコメントを追加しました。 '$ photo'は、宣言されていないのでE_NOTICE(スクリプトの実行を停止しません)を生成します。つまり、PHPのデフォルト値は '/ 0/falseです。私はスクリプトのエラーを見直します。 –

+0

スクリプトの動作を停止させる何も見ることができませんでしたが、PODS CMSをインストールしてwordpressをインストールしていないので、それをテストしています。 –

関連する問題