wordpressor
  • 0
Эксперт

Шорткод всегда отображается первым. Еще раз

  • 0

Хорошо, у меня была проблема с эхом в моем последнем шорткоде, но теперь все работает нормально.

Но у меня другой:

function myWidget_shortcode( $atts ) {
        extract( shortcode_atts( array(
        'title' => 'My Widget',
        'value' => '5',
        ), $atts ) );

        return the_widget(myWidget,'title='.$title.'&value='.$value);
}

add_shortcode('myWidget', 'myWidget_shortcode'); 

Можете ли вы сказать мне, почему этот шорткод всегда отображается первым на страницах? Нет эха и т. д., все данные возвращаются…

[нашел ответ — редактировать]

Это решает проблему:

ob_start();    
the_widget(popularPosts,'title='.$title.'&number='.$number);
return ob_get_clean();

В любом случае, я не понимаю, почему в этом случае он всегда первый. Потому что the_widget сама по себе является функцией и что-то повторяет? :>

Share
  1. Да, посмотрите на widget() метод в вашем MyWidget классе. Это эхо? Скорее всего так и есть, потому что так обычно пишутся виджеты. На самом деле, я был бы удивлен, увидев виджет, который не выводил вывод в своем widget() методе.

    И когда вы вызываете the_widget(), он извлекает экземпляр запрашиваемого вами виджета и вызывает $widget_obj->widget($args, $instance); . Так что это повторяется и ничего не возвращает.

    • 0

Оставить ответ

You must login to add an answer.