Вывожу во вкладке ЛК комментарии, которые были оставлены пользователями к публикациям владельца личного кабинета.
создаю новую вкладку:
add_action('init','add_tab_all_comments'); function add_tab_all_comments(){ $tab_data = array( 'id'=>'all_comments_lk', 'name'=>'Комментарии', 'public'=>0,//делаем вкладку приватной 'icon'=>'fa-trophy',//указываем иконку 'output'=>'menu',//указываем область вывода 'content'=>array( array( //массив данных первой дочерней вкладки 'callback' => array( 'name'=>'all_comments_lkab',//функция формирующая контент ) ) ) ); rcl_tab($tab_data); }
Далее идёт функция, которая выводит необходимые комментарии:
function all_comments_lkab(){ global $user_LK; $args = array( 'post_author' => $user_LK, if( $comments = get_comments( $args ) ){ foreach( $comments as $comment ){ echo ($comment->comment_author.'<br />'.$comment->comment_date.'<br />'.$comment->comment_content);} } }
Дело в том, что при выводе через "echo" комментарии выводятся во всех вкладках ЛК, а через "return" выводится только один комментарий.
На данном форуме нашёл похожую тему , там говорится о конкатенации строк и пример приводится с учётом того, что уже склеивается известное количество строк. Но в моём случае количество комментариев постоянно растёт и как их правильно вывести в ЛК не представляю.
и пример приводится с учётом того, что уже склеивается известное количество строк.
- вы говорите о новом в мире конкатенации.
Какая разница - известно сколько строк или нет.
Приведите свой пример конкатенации
if( $comments = get_comments( $args ) ){ foreach( $comments as $comment ){ $out .= ($comment->comment_author.'<br />'.$comment->comment_date.'<br />'.$comment->comment_content);} } } return $out;
p.s. три строчки скопировал как есть. Синтаксис сами правьте. Суть конкатенации я вам показал