2015-10-26 40 views
0

对于网站,我想在父页面的标签页中添加包含动态内容(图片,列表,列...)的所有子页面。这些标签可能非常简单,如this标签中的WordPress子页面

<ul class="tabs"> 
    <li> 
     <input type="radio" name="tabs" id="tab1" checked /> 
     <label for="tab1">Description</label> 
     <div id="tab-content1" class="tab-content"> THE CONTENT </div> 
    </li> 
    <li> 
     <input type="radio" name="tabs" id="ta2" checked /> 
     <label for="tab2">Description</label> 
     <div id="tab-content1" class="tab-content"> THE CONTENT </div> 
    </li> 
</ul> 

伴随着一些CSS。

如何修改此代码以通过WordPress子页面获取标题和内容?

回答

0

您将需要一个自定义循环。首先,您必须执行WP_Query来获取您的子页面。我不知道你的结构,使该片段是唯一的例子:

$subpages = new WP_Query(array(
    'post_type'  => 'page', 
    'post_parent' => $this_page, 
    'posts_per_page' => - 1, 
    'orderby'  => 'menu_order' 
)); 

然后你就可以循环特罗此查询是这样的:

<ul class="tabs"> 

<?php 
    global $post; 
    while ($subpages->have_posts()) : $subpages->the_post(); 
?> 
    <li> 
     <input type="radio" name="tabs" id="<?php echo $post->post_name; ?>" checked /> 
     <label for="<?php echo $post->post_name; ?>"> 
      <?php the_title(); ?> 
     </label> 
     <div id="<?php echo $post->post_name; ?>" class="tab-content"> 
      <?php the_content();?> 
     </div> 
    </li> 
<?php endwhile; wp_reset_query(); ?> 

</ul> 

你应该把类似的循环到模板或在你想显示子页面。这个循环会迭代你的包含子页面的查询,并设置全局的$ post对象,所以它总是包含这个循环中的当前子页面。然后它会打印你请求的HTML结构,它将使用页面的标题,页面的内容和页面的内容。迭代之后,它将重置一个查询并取消设置$ post全局变量。