0

特定の本に関連する著者がいますが、複数の著者がいる場合は、それらをコンマで区切る必要がありました。PHPのimplode関数を使用してこれを実行しましたが、ハイパーリンクされた作成者名の文字列を表示できません(変数を正しく設定するのに問題があります)。

これは私が最初に持っていたコードであり、それぞれのページにリンクされた作成者の名前を示していますが、コンマで区切られていませんでした(暗黙ではありません)。

<?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; ?>

これは私が今持っているコードであり、複数の値がある場所をコンマで区切りますが、作成者の名前を正しく表示しません。

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

'$ author ='変数を編集して、

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

古いコードのビット。助けていただければ幸いです。

4

1 に答える 1

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; ?>

そうすれば、作業コードを使用できます。

于 2012-06-08T11:58:31.853 に答える