Я довольно новичок в php и пытаюсь получить echo "<p>" .get_the_tags($author_post). "</p>";
вывести на экран теги, связанные с публикацией ее списка в цикле.
Мне сказали «вам нужно пройти через массив» и «Это возвращает массив тегов. Затем вы должны пересечь массив, если хотите вывести его». Но мне не сказали, как этого добиться. Я не уверен, как поступить.
Вот полный код.
if ($author_posts) {
echo '<ul>';
$i = 0;
foreach ($author_posts as $author_post) {
/* excluded categories */
if (has_category(explode(',', $atts['exclude']), $author_post->ID)) :
continue;
endif;
$postdate = date_i18n( get_option( 'date_format' ), strtotime($author_post->post_date)).' - ';
echo '<li>';
echo ($atts['postdate'] ? $postdate : ''). '<a href="' . get_permalink( $author_post->ID ) . '">'.$author_post->post_title.'</a>';
$categories = get_the_category( $author_post->ID );
$list_cats =null;
foreach ($categories as $cat) :
$list_cats .= $cat->name.", ";
endforeach;
$list_cats = substr($list_cats, 0, -2);
echo "<p>" .get_the_tags($author_post). "</p>";
echo '</li>';
$i++;
if ($atts['postsperauthor'] > -1) :
if ($i >= $atts['postsperauthor']) :
break;
endif;
endif;
}
}
Спасибо за любую помощь, которую вы можете предоставить
Я полагаю, ваш get_the_tags()
вернуть array
попробуй это:
$tags = get_the_tags($author_post);
$tagNames = [];
foreach ( $tags as $tag ) {
$tagNames[] = $tag->name
}
echo implode(',',$tagNames)
echo '</div>';
echo '</li>';
Кстати, этот синтаксис немного стар
Других решений пока нет …