Этот вопрос закрыт для ответов, так как повторяет вопрос Как вставить цикл WP в шорткод?
meekes
@meekes
Стажер

Почему шордкод выводит только 1 запись из цикла?

Шордкод выаодит данные из базы если вывожу через echo код улетает на верх страницы, но выводит все записи. А если через return то выводиться одна запись.

add_shortcode( 'baza', 'baza' );

function baza( $atts ){
    
global $wpdb;

$results = $wpdb->get_results( "SELECT * FROM baza");

foreach ( $results as $result ) {
$pise = $result->Цена;
$tarif = $result->Товар;
$magaz = $result->Магазин;
	return "<div>
	Имя: <b>$tarif</b> <br> Цена: $pise руб. в магазине $magaz <br><br>
	</div>";
}

}
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
meekes
@meekes Автор вопроса
Стажер
Нашел решение

ob_start();
foreach ( $results as $result ) {
$pise = $result->Цена;
$tarif = $result->Товар;
$magaz = $result->Магазин;
  echo "<div>
  Имя: <b>$tarif</b> <br> Цена: $pise руб. в магазине $magaz <br><br>
  </div>";
}


wp_reset_postdata(); // сброс
$myreturn = ob_get_clean();
return $myreturn;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@IvanMogilev
Backend developer: Wordpress,Yii
Потому что после return вы выходите из функции, соответсвенно и из форича тоже, который успевает выполнится 1 раз, собирайте результаты в массив, например, или в общую строку, как вам нужно, и возвращайте ее
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы