我在Wordpress (php)中构建了一个模板和两个部分。在模板中,我使用了两次get_template_part(),但只加载了第一个。
<div class="partial_blockarticle">
<?php
get_template_part('partials/blockarticle');
?>
</div>
<div class="partial_interview">
<?php
get_template_part('partials/interviewpartial');
?>
</div>
在本例中,加载了块文章,但没有访问。如果我切换div,只会加载采访。
blockarticles/interview是自定义字段,并像这样在部分中加载:
<?php
$pageID = $post->ID;
// Build WP_Query() argument array
$news = new WP_Query(array(
'posts_per_page' => 6,
'post_type' => 'blockarticles',
'order' => 'desc',
'orderby' => 'date',
'meta_key' => 'blockarticle_page_parent',
'meta_value' => $pageID
));
while($news->have_posts()): $news->the_post();
?>
//Do stuff
我在这里做错了什么?$news不能为空,因为当我切换位置时,它同时显示文章和采访?
尝试在两个自定义查询的endwhile之后直接运行wp_reset_query()
。我认为问题是第二个include中的$post->ID
没有返回正确的页面ID。
在实例化新的WP_Query实例之前尝试调用wp_reset_query()
。有时我必须这样做才能使额外的WP_Queries正常工作。
也尝试在每个部分的新WP_Query之前回显一些东西。如果回显正确,则模板加载工作正常。例如:
<?php
// Test echo
echo 'does this work?';
$pageID = $post->ID;
// Build WP_Query() argument array
$news = new WP_Query(array(
'posts_per_page' => 6,
'post_type' => 'blockarticles',
'order' => 'desc',
'orderby' => 'date',
'meta_key' => 'blockarticle_page_parent',
'meta_value' => $pageID
));
while($news->have_posts()): $news->the_post();
?>
//Do stuff