@tbalero

Как отобразить названия категорий (из произвольной таксономии) через запятую, но без запятой в конце?

1. На вордпресс-сайте на странице записи (запись произвольного типа) для отображения названий категорий без ссылки (категории произвольной таксономии 'genres') используется следующий код:
<?php
    $cur_terms = get_the_terms( $post->ID, 'genres');
    foreach( $cur_terms as $cur_term ){
    echo array_shift( $cur_terms )->name. ', ';
    }
?>

В итоге названия категорий без ссылок (категории произвольной таксономии) отображаются корректно, через запятую, но отображается лишняя запятая после последнего названия категории.

Вопрос_1: Как нужно изменить данный код, чтобы отобразить названия категорий без ссылок (категории произвольной таксономии) через запятую, но при этом без запятой в конце?

2. На вордпресс-сайте на странице записи одного произвольного типа — чтобы отобразить список связанных записей другого произвольного типа, используется произвольное поле 'relationship-field' типа "Relationship field" (www.advancedcustomfields.com/resources/relationship ). Для отображения используется следующий код:
<?php 
$posts = get_field('relationship-field');

if( $posts ): ?>

   <?php foreach( $posts as $post): // variable must be called $post (IMPORTANT) ?>
      <?php setup_postdata($post); ?>

         <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

   <?php endforeach; ?>

   <?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif; ?>

В итоге на странице записи одного произвольного типа корректно отображаются названия (со ссылками) связанных записей другого произвольного типа. Названия связанных записей отображаются через пробел, но без запятых.

Вопрос_2: Как нужно изменить данный код, чтобы отобразить названия связанных записей через запятую, но при этом без запятой в конце?
  • Вопрос задан
  • 471 просмотр
Решения вопроса 1
creativeworm
@creativeworm
по первому так:
<?php
$array = array();
$cur_terms = get_the_terms( $post->ID, 'genres');
foreach( $cur_terms as $cur_term ){
$array[] = $cur_term->name;
}
$comma_separated = implode(", ", $array);

echo $comma_separated; // term1, term2, term3
?>

По второму:
<?php 
$posts = get_field('relationship-field');

if( $posts ): 
$new_posts = array(); ?>

   <?php foreach( $posts as $post): // variable must be called $post (IMPORTANT) ?>
      <?php setup_postdata($post); 
      $new_posts[] =  '<a href="'.get_the_permalink().'">'.get_the_title().'</a>'; // сложили все в массив
      ?>
   <?php endforeach; 
    $done_post = implode(",", $new_posts);
    echo $done_post; ?>

   <?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif; ?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы