如果我在简码中使用get_template_part,则无法编辑页面

时间:2018-12-25 22:12:10

标签: php wordpress shortcode

请帮助解决问题!

我有模板部分content-event.php。我在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()-一切正常。但是,当然,那我不会在轮播中获得帖子。

请告诉我,这可能是错误或某些解决方法。

0 个答案:

没有答案