WP查询多个短代码不在同一页面或模板页面上工作

时间:2016-07-25 15:48:41

标签: wordpress wordpress-theming shortcode

我创建了一个Shortcode滑块,它可以获取不同页面的ID并显示显示滑块。 Shordcode工作正常,但问题是每当我在同一页面/模板页面上多次复制短代码时,它只显示第一个。 此问题仅在我使用相同类型的短代码时发生,但如果我在同一页面上通过任何其他短代码,则可以正常工作。

这是我的代码

add_shortcode( 'objectx-pages-list', 'objectx_pages_list_func' );
function objectx_pages_list_func( $atts ) {
global $post;
ob_start();
extract( shortcode_atts( array('ids' => '1186'), $atts ) );
$id_array = explode(',', $ids); 
$pages_query = new WP_Query( array(
    'post_type' => 'page',
    'post__in' => $id_array,
    'order' => 'ASC',
    'orderby' => 'title',
) );
if ( $pages_query->have_posts() ) { ?>
<div class="carousel-wrapper">
<div class="owl-carousel owl-theme carousel-1" id="carousel-rooms">
<?php while ( $pages_query->have_posts() ) : $pages_query->the_post();
$featured_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
?>
<div <?php post_class('item'); ?> id="post-<?php the_ID(); ?>">
    <div class="row">
        <div class="col-md-7">
            <div class="img-rooms">
                <a href="<?php the_permalink(); ?>">
                <img class="img-responsive wp-post-image" src="<?php echo $featured_image; ?>"></a>
            </div>
        </div>
    <div class="col-md-5">
        <div class="detail-rooms">
            <h2 class="title-room "><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
            <?php the_excerpt(); ?> 
        </div>
    </div>
    </div>
</div>
<?php endwhile; ?>
</div>
</div>
<?php $myvariable_pages = ob_get_clean();
wp_reset_postdata();
return $myvariable_pages;
    }
}

这是短代码

[objectx-pages-list id="15,16,17"]
[objectx-pages-list ids="25,26,27"]

在这里您可以看到实时示例 http://objextheme.wpengine.com/

这一个工作正常 ROOFTOP PATIO&amp; LOUNGE 但这不起作用 本周在Vertigo Sky Lounge

请指导我在哪里做错了。感谢

1 个答案:

答案 0 :(得分:0)

add_shortcode( 'objectx-pages-list', 'objectx_pages_list_func' );
function objectx_pages_list_func( $atts ) {
global $post;
ob_start();
extract( shortcode_atts( array('ids' => '1186'), $atts ) );
$id_array = explode(',', $ids); 
$pages_query = new WP_Query( array(
    'post_type' => 'page',
    'post__in' => $id_array,
    'order' => 'ASC',
    'orderby' => 'title',
) );
if ( $pages_query->have_posts() ) { ?>
<div class="carousel-wrapper">
<div class="owl-carousel owl-theme carousel-1" id="carousel-rooms">
<?php while ( $pages_query->have_posts() ) : $pages_query->the_post();
$featured_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
?>
<div <?php post_class('item'); ?> id="post-<?php the_ID(); ?>">
    <div class="row">
        <div class="col-md-7">
            <div class="img-rooms">
                <a href="<?php the_permalink(); ?>">
                <img class="img-responsive wp-post-image" src="<?php echo $featured_image; ?>"></a>
            </div>
        </div>
    <div class="col-md-5">
        <div class="detail-rooms">
            <h2 class="title-room "><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
            <?php the_excerpt(); ?> 
        </div>
    </div>
    </div>
</div>
<?php endwhile; ?>
</div>
</div>
<?php $myvariable_pages = ob_get_clean();
wp_reset_postdata();
return $myvariable_pages;
    }
}
  

这是我注意到的错误。 id =“carousel-rooms”我重复一遍   同一页。这就是为什么只有一次运行完美。