如何在短代码WordPress中使用模板或部分循环?

时间:2017-06-21 22:07:16

标签: php wordpress shortcode

为了更好地组织我的代码,我想在模板中拆分一些HTML。 我在短代码中有一个循环来获取帖子:

function nh_shortcode_func($atts) {
    $posts = get_posts_by_category(.......);
    $html .= '';
    foreach ($posts as $post) {
       $post_id = $post->ID;
       $post_title = $post->post_title;
       $post_image = get_field('image', $post_id);

       $html .= **HERE THE CODE OF HTML WITH DIVS AND CLASSES**
    }
    return $html
}

add_shortcode('nh-content', 'nh_shortcode_func');

相反,将我的HTML代码放在变量中,我想使用另一个带有HTML结构的文件,我将用它来构建帖子。另外,我想将动态数据传递给它。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:2)

只需使用包含文件即可访问变量。类似的东西:

function nh_shortcode_func($atts) {
    ob_start();
    include dirname( __FILE__ ) . '/templates/nh_shortcode.php';
    return ob_get_clean();
}

add_shortcode('nh-content', 'nh_shortcode_func');