2012-06-08 73 views
0

我有作者與特定的書籍相關聯,並且有多個作者,我需要用逗號分隔它們。我已經使用PHP implode函數完成了這項工作,但是我無法使其顯示一串作者姓名,超鏈接(我無法正確設置變量)。(WordPress的) - PHP變量顯示自定義字段超鏈接

這是我原來的代碼,它顯示了作者姓名,鏈接到他們各自的頁面,但沒有逗號分隔(沒有內疚)。

<?php if(get_field('author')): ?> 
     <?php foreach(get_field('author') as $related): ?> 
      <a href="<?php echo get_permalink($related->ID); ?>"><?php echo get_the_title($related->ID) ?></a>&nbsp; 
     <?php endforeach; ?> 
    <?php endif; ?> 

這是代碼我現在有,這逗號界定,其中有多個值,但不正確dsplay作者名稱:

<?php foreach(get_field('author') as $related); 
$author = get_post_meta($post->ID, 'author'); 
$authorString = implode (',' , $author); 
echo $authorString; 
?> 

我想我需要編輯「$作者='包含變量

<a href="<?php echo get_permalink($related->ID); ?>"><?php echo get_the_title($related->ID) ?></a> 

位舊代碼。任何幫助感謝!

回答

1

爲什麼要使用implode?如果計數器大於零,你不能只使用計數器並回顯一個逗號嗎?像這樣:

<?php if(get_field('author')): ?> 
    <?php $i = 0; foreach(get_field('author') as $related): ?> 

     <?php if($i > 0) { echo ",&nbsp;"; } ?> 

     <a href="<?php echo get_permalink($related->ID); ?>"><?php echo get_the_title($related->ID) ?></a> 

    <?php ++$i; endforeach; ?> 
<?php endif; ?> 

這樣你就可以使用你的工作代碼。

+0

感謝vstm,這工作完美!我的印象是內爆是我需要使用的。我對你的建議更加滿意。 – Rob

+0

你知道我可能會改變它以在適當的地方添加'&'嗎? 例如: 1個作者 - X 兩位作者 - X&X 3的作者X,X X 感謝 – Rob

+0

@Rob:要記住的第一件事是,'&'本身並不是有效HTML - 你必須將其轉義爲'&'否則有些瀏覽器可能會丟棄它。當然,這取決於哪些位置是「合適的」 - 您可以使用'$ i'-計數器來檢查打印哪個分隔符。如果它更復雜,那麼你可能必須更精確,也許編輯問題並添加更多細節。 – vstm