2012-06-08 3 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을 사용해야합니까? 카운터를 사용하고 카운터가 0보다 큰 경우 쉼표를 울릴 수 있습니까? 이와 같이 :

<?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 2 저자 - X & X 3 저자 X, X 및 X 감사 – Rob

+0

@ 롭 : 잘 기억해야 할 첫 번째 일은 및 '혼자가 유효하지 않은'이다 HTML - '&'으로 이스케이프해야합니다. 그렇지 않으면 일부 브라우저에서이를 버릴 수 있습니다. 그런 다음 그것은 "적절한 위치"에 달려 있습니다 - 아마도'$ i'-counter를 사용하여 인쇄 할 구분 기호를 확인할 수 있습니다. 그것보다 복잡하다면 아마 더 정확해야하고 아마도 질문을 편집하고 더 많은 세부 사항을 추가해야합니다. – vstm

관련 문제