PHP с помощью шорткода всегда в верхней части страницы


У меня есть плагин для wordpress, чтобы показывать самые популярные посты...

Но когда я добавляю его с помощью шорткода, он всегда попадает в верхнюю часть страницы, а не туда, где я его разместил... Я изменил каждое эхо в плагине PHPs, чтобы вернуться, но это не помогло... Вот мой шорткод в functions.php :

function top_news(){
	 $args = array(
    'limit' => 15,
    'range' => 'daily',
'freshness' => 1,
 'order_by' => 'views',
'post_type' => 'post',
'stats_views' => 1,
'stats_author' => 1,
 'stats_date' => 1,
'wpp_start' => '<table class="topnachrichten"><tr><th>Datum</th><th>Top Nachrichten von Heute</th><th>Leser</th></tr>',
    'wpp_end' => '</table>',
'stats_date_format' => 'd',
'excerpt_by_words' => 1,
    'excerpt_length' => 35,
'title_length' => 66,
 'post_html' => '<tr><td class="datum">{date}. Aug</td><td class="stext"><details>
  <summary><a href="{url}">{title}</a><span class="plus">+</span></summary>{summary}<br><a href="{url}">Weiterlesen</a></details></td><td class="views">{views}</td></tr>'


);
	wpp_get_mostpopular( $args );
	return $args;
}
add_shortcode( 'topnews', 'top_news' );

Ты знаешь, что я могу сделать?

Спасибо, до

Author: Jonathon, 2017-09-20

1 answers

Чтение документации wpp_get_mostpopular, в нем говорится, что функция фактически печатает популярные сообщения. Это означает, что ваши популярные посты распечатываются до того, как они что-либо вернут, и поскольку все короткие коды обрабатываются до того, как содержимое постов будет напечатано, поэтому ваши популярные посты всегда печатаются до (вверху) содержимого публикации.

Итак, что вы можете сделать, так это собрать все популярные сообщения в буфер.

function top_news(){
     $args = array (
        'limit' => 15,
        'range' => 'daily',
        'freshness' => 1,
        'order_by' => 'views',
        'post_type' => 'post',
        'stats_views' => 1,
        'stats_author' => 1,
        'stats_date' => 1,
        'wpp_start' => '<table class="topnachrichten"><tr><th>Datum</th><th>Top Nachrichten von Heute</th><th>Leser</th></tr>',
        'wpp_end' => '</table>',
        'stats_date_format' => 'd',
        'excerpt_by_words' => 1,
        'excerpt_length' => 35,
        'title_length' => 66,
        'post_html' => '<tr><td class="datum">{date}. Aug</td><td class="stext"><details>
        <summary><a href="{url}">{title}</a><span class="plus">+</span></summary>{summary}<br><a href="{url}">Weiterlesen</a></details></td><td class="views">{views}</td></tr>'
    );

    ob_start();
    wpp_get_mostpopular( $args );
    $output = ob_get_contents();
    ob_end_clean();

    return $output;
}
add_shortcode( 'topnews', 'top_news' );
 1
Author: Junaid, 2017-09-20 09:38:22