使用快捷码时,内容在_Content之后停止生成

时间:2016-01-06 作者:vlovsky

昨天我实现了一个短代码,但现在我的评论和相关帖子不再出现了。

渲染页面的源现在仅显示

            <div class="posts-group">
            </div>
而不是

    <div class="posts-group">          
      <div id="disqus_thread"></div>
    </div>

    <div class="posts-group"><h2>Looking for more articles?</h2>
       //RELATED POSTS
    </div>
现在唯一的区别是使用了短代码,所以“bug”必须存在,对吗?唯一的问题是。。我看不出有什么问题。

函数中的短代码。php:

function get_products($atts) {
  ob_start();
  get_template_part(\'block-products-inline\');
  return ob_get_clean();
}
add_shortcode(\'products\', \'get_products\');
块产品内联模板部分:

<br>    
    <p><i>Article continues below these four featured products!</i></p>

    <div class="posts-group inline-products">

        <h1>Featured store products</h1>

            <?php $catquery = new WP_Query( \'post_type=product&posts_per_page=4&orderby=rand\' );
            while($catquery->have_posts()) : $catquery->the_post();
            ?>

            <a href="<?php echo get_post_meta($post->ID,\'PRODUCT-url\', true);?>">
                <article class="post home-post homeproduct">
                        <div class="post-thumbnail-img inline-products-hover">
                            <?php the_post_thumbnail(\'small-thumbnail\'); ?>
                        </div>
                        <h2>
                            <?php the_title(); ?>
                        </h2>
            </a>        
                        <p>
                            <?php the_content(); ?>
                        </p>
                </article>

            <?php endwhile; ?>

    </div>
<br>
我希望其他人能看到/发现我的问题,因为我一点都不知道。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

这有点猜测,但您正在循环内运行一个辅助查询(通过短代码)。这将改变后续代码可能依赖的一些变量,例如$post.

我想你需要补充wp_reset_query(); 在短代码中的第二个循环之后—就在endwhile;