Я пытаюсь объединить имена авторов, когда в статье более одного автора, но по какой-то причине добавляются дополнительные запятые. Это код, который я использую:
$get_coauthors = get_coauthors();
$count = count( $get_coauthors );
if ( $count > 1 ) {
for ( $i = 0; $i <= $count; $i++ ) {
$name .= $get_coauthors[ $i ]->data->display_name . ' ,';
}
} else {
$name = $get_coauthors[0]->data->display_name;
}
error_log(print_r($name,true));
И мой print_r возвращается user1 ,user2 , ,
Любая идея почему?
Нет необходимости в count()
или if
заявление. Это может быть проще:
//If you already have a $name
$names[] = $name;
foreach(get_coauthors() as $author) {
$names[] = $author->data->display_name;
}
$names = implode(', ', $names);
Чтобы удалить пустую тару:
$names = implode(', ', array_filter($names));
ты можешь использовать rtrim()
удалить последний, из вашего списка имен.
что-то вроде
$srting = 'a,b,c,d,e,';
$result_output = rtrim($srting);
echo $result_output;
затем выведите: a,b,c,d,e
так твой код будет
$names = '';
foreach(get_coauthors() as $author) {
$names .= $author->data->display_name. ' ,';
}
$result = rtrim($names,",");
или получить все имя в массиве, затем просто взорвать его, тогда вы получите результат, как user1, users2 и т. д.
$names = array();
foreach(get_coauthors() as $author) {
$names = $author->data->display_name;
}
$names = implode(', ', $names);
для получения дополнительной помощи о взрывах массива