2014-04-10 49 views
0

我有2個posttypes書籍和商店,商店被分配爲書籍的postobject。高級自定義字段 - 僅在第一次提取的帖子對象的自定義字段

的bookcode和一個BookInfo是posttype書和storeurl的領域是的CustomField posttype-店

什麼,我試圖做...基於在圖書的下拉選擇的店,我想顯示的存儲以及來自後書店的相應書店以及書的書碼和書籍信息。

在所有帖子下面

顯示...用正確的STORENAME的bookcode &的BookInfo所有職位,但storeurl只爲我如何得到它提取的所有帖子的lastpost正確提取正確

<?php 
while (have_posts()): the_post();?> 

<div class="bookindex"> 

    <div class="bookdata"> 
     <?php    
     $storelist = get_field('storelist');    

     foreach ($storelist as $post) : setup_postdata($post); 
     $storename = get_the_title($post->id); 
     $storelink = strip_tags(get_field('storelink',$post->id)); 
     //var_dump($storelink);  
     ?> 

     <div class="storename"> 
      <?php echo $storename;?> 
    </div> 

     <?php endforeach; wp_reset_postdata(); ?> 

    <?php 
     $bookinfo = get_field('bookinfo',$post->id); 
     ?> 

    <div class="bookinfo"> 
      <?php echo $bookinfo; ?> 
    </div> 

    <?php 
    $bookcode = get_field('bookcode',$post->id); 
    ?> 

    <div class="clickbtn"> 
      <a href="<?php echo $storelink; ?>"> 
        <?php echo $bookcode; ?> 
      </a> 
    </div> 

    </div>  
</div> 

<?php endwhile; ?> 

新代碼

<?php 

while (have_posts()): the_post(); 

?> 
<div class="bookindex"> 

    <div class="bookdata">   
     <?php  
     $bookinfo = get_field('bookinfo',$post->ID); 
     $bookcode = get_field('bookcode',$post->ID); 

     $storelist = get_field('storelist'); 
     $stores=array(); 
     foreach ($storelist as $store): 
     $stores[] = array(
     'name' => get_the_title($store->ID), 
     'link' => strip_tags(get_field('storelink', $store->ID)) 
    ); 
    endforeach; ; 
     ?> 
     <div class="storename"> 
      <?php echo $stores[$post->ID];?> 
    </div> 

    <div class="bookinfo"> 
      <?php echo $bookinfo; ?> 
    </div> 

    <div class="clickbtn"> 
      <a href="<?php echo $stores[$post->ID]; ?>"> 
        <?php echo $bookcode; ?> 
      </a> 
    </div> 

    </div>  
</div> 

<?php endwhile; ?> 

它不返回無論是STORENAME或storeurl

+0

comeon沒有一個單一的回覆 – user3449454

+0

如果我移動點擊btn之下的藝術家然後也沒有提取除了最後一個帖子外的所有storelink加上bookinfo並點擊btn重複不止一次爲書中的每個帖子 – user3449454

回答

0

您在foreach ($storelist as $post)循環中定義了$storelink,但在循環結束之前不會使用它,這意味着只有最後定義的$ storelink可用。如果您需要積累一堆商店名稱和標題你可能會考慮這樣的:

$stores = array(); 
foreach (get_field('storelist') as $store) { 
    $stores[] = array(
    'name' => get_the_title($store->ID), 
    'link' => strip_tags(get_field('storelink', $store->ID)) 
); 
} 

那麼你就必須存儲陣列購買,你可以用它來構建鏈接(如果我的書理解你的用法是正確的;無論哪種方式,$storelink的唯一正確的循環中的最後一項是因爲該變量從未使用,直到循環後)。

編輯:您的更新版本嘗試引用不存在的特定數組鍵;我擔心我可能會對我的數組建議感到困惑。如果我理解你正在試圖做正確的東西,這樣的事情應該符合該法案:

<?php while (have_posts()) : the_post(); ?> 

    <div class="bookindex"> 
    <?php 
     // Since $bookinfo and $bookcode don't appear to change, we'll get them once and save it 
     $bookinfo = get_field('bookinfo', $post->ID); 
     $bookcode = get_field('bookcode', $post->ID); 
    ?> 

    <?php foreach (get_field('storelist') as $store) : ?> 

     <div class="bookdata"> 
     <div class="storename"> 
      <?php echo get_the_title($store->ID);?> 
     </div> 

     <div class="bookinfo"> 
      <?php echo $bookinfo; ?> 
     </div> 

     <div class="clickbtn"> 
      <a href="<?php echo strip_tags(get_field('storelink', $store->ID)); ?>"><?php echo $bookcode; ?></a> 
     </div> 

     </div><!-- .bookdata --> 

    <?php endforeach; ?> 

    </div><!-- .bookindex --> 

<?php endwhile; ?> 

編輯2:顯然我沒有得到正是你打算如何呼應鏈接,但原始問題的答案(「爲什麼$storelink只對$storelist循環的最後一次迭代是正確的?」)保持不變 - 變量被重寫多次,在迭代之間沒有任何操作。

+0

steve我更新了代碼...使用由u建議的修改,但現在我不返回商店名稱或商店。 – user3449454

+0

它不會回顯商店名稱或店鋪網址,現在它也會重複發佈次數。發送截圖http://s100.photobucket.com/user/littledevil2014/media/4-14-20149-30-13AM_zps9838c7b9 .png.html – user3449454

+0

bookdata似乎在書籍索引中多次重複自己 – user3449454

相關問題