Редактирование страницы не работает, если я использую get_template_part в шорткоде - PullRequest
0 голосов
/ 26 декабря 2018

Помогите решить проблему, пожалуйста!

У меня есть часть шаблона content-event.php.Я использую его в цикле пользовательского типа сообщения "event" в archive-event.php. Здесь он работает хорошо.

Теперь мне нужно сделать карусель из этих сообщений (событий).Мой код в functions.php:

add_shortcode('km_events_carousel', 'km_events_carousel');

function km_events_carousel(){

    $html = '<div class="your-class">';

    $args = array(
        'post_type'=> 'km_event',
        'meta_key' => 'start',
        'orderby'  => 'meta_value_num',
        'order'    => 'ASC'
    );

    $km_events_query = new WP_Query( $args );
    if( $km_events_query->have_posts() ) {
        while ( $km_events_query->have_posts() ) {
            ob_start();
            get_template_part( kettlebell_get_post_template_part_slug(), 'event' );
            $html .= ob_get_clean();
        }
    }

    $html .= '</div>';

    wp_reset_postdata();

    return $html;
}

Этот шорткод также хорошо работает.

Суть проблемы: , когда я нажимаю "Редактировать страницу" наВ верхней части страницы или откройте страницу из панели администратора для редактирования, я получаю изображение одного из сообщений, которые появляются в карусели вместо панели администратора.

Если я прокомментирую функцию get_template_part () -все работает правильно.Но, конечно, тогда я не получаю сообщения в карусели.

Скажите, пожалуйста, в чем может быть ошибка или какой-то обходной путь.

...