首页 > 解决方案 > 如果我在简码中使用 get_template_part,则无法编辑页面

问题描述

请帮忙解决问题!

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

请告诉我,可能是什么错误或一些解决方法。

标签: phpwordpressshortcode

解决方案


推荐阅读