2017-03-25 150 views
0

我是使用WP短代码的新手,我遇到了一个问题。我试图做一个短代码,通过循环显示我的博客帖子中的6个,但它不起作用。当它加载时,它只是捣毁页面。循环代码在实践中起作用,而不是短代码。WordPress循环短代码

代码

function myshort() { ?> 
<?php 
    $args = array('post_type' => 'cases', 'posts_per_page' => 6); 
    $loop = new WP_Query($args); 
    while ($loop->have_posts()) : $loop->the_post(); 
?> 

<div class="col-sm-6 wow fadeInUp" data-wow-delay="0.1s"> 
    <a class="content" href="<?php echo get_permalink($post->ID); ?>"> 
     <div class="image"> 
      <?php the_post_thumbnail(); ?> 
     </div> 
     <div class="text"> 
      <span class="date"><?php echo rwmb_meta('rw_stitle'); ?></span> 
      <h3><?php the_title(); ?></h3> 
      <p><?php echo rwmb_meta('rw_sdesc'); ?></p> 
     </div> 
    </a> 
</div> 

<?php endwhile; 
} 

add_shortcode('doitman', 'myshort'); 

所以,我的问题是,我怎么写这个正确的方式?

回答

0

结果应该是返回作为一种价值, 你可以尝试这样的事:

function myshort() { 
    ob_start(); ?> 
<?php 
    $args = array('post_type' => 'cases', 'posts_per_page' => 6); 
    $loop = new WP_Query($args); 
    while ($loop->have_posts()) : $loop->the_post(); 
?> 

<div class="col-sm-6 wow fadeInUp" data-wow-delay="0.1s"> 
    <a class="content" href="<?php echo get_permalink($post->ID); ?>"> 
     <div class="image"> 
      <?php the_post_thumbnail(); ?> 
     </div> 
     <div class="text"> 
      <span class="date"><?php echo rwmb_meta('rw_stitle'); ?></span> 
      <h3><?php the_title(); ?></h3> 
      <p><?php echo rwmb_meta('rw_sdesc'); ?></p> 
     </div> 
    </a> 
</div> 

<?php endwhile; 

    return ob_get_clean(); 
} 

add_shortcode('doitman', 'myshort');