我正在将标题缩略图jquery滑块添加到标题部分,但它会产生奇怪的问题。它在某种程度上没有结束或停止查询,所以如果我将转到单个帖子或页面,它将继续显示循环而不是页面或发布内容。
我尝试了两种不同的查询,但没有一种能够停止这个奇怪的问题。
首次尝试
<?php
query_posts( 'post_status=publish&orderby=rand' );
while (have_posts()) : the_post();
$title_attr = array(
'title' => get_the_title(),
'alt' => get_the_title(),
'class' => get_the_title(),
);
echo '<a href="#post-'.get_the_ID().'" class="scroll theme">';
the_post_thumbnail('thumbnail',$title_attr);
echo '</a>';
endwhile; ?>
比第二次尝试
<?php
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query('post_status=publish&orderby=rand');
// The Loop
if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post();
$title_attr = array(
'title' => get_the_title(),
'alt' => get_the_title(),
'class' => get_the_title(),
);
echo '<a href="#post-'.get_the_ID().'" class="scroll theme">';
the_post_thumbnail('thumbnail',$title_attr);
echo '</a>';
endwhile; endif; wp_reset_query();?>
这些都没有停止显示循环(所有帖子,如索引页)到单个帖子或页面。
答案 0 :(得分:2)
我将转到单个帖子或页面,它会继续显示循环而不是页面或发布内容......
这是因为你没有传递任何限制单个帖子查询的参数。您的查询($wp_query->query('post_status=publish&orderby=rand');
)会随机按顺序提取所有帖子。对于单个帖子显示,您需要传递它a post or page parameter。您可能需要使用get_query_var()来检查“p”,“page_id”或两者。像这样:
$pid = get_query_var('p');
if (!empty($pid)) {
$qry = 'p='.$pid;
} else {
$qry = 'post_status=publish&orderby=rand';
}
$wp_query->query($qry);
还有其他可能的解决方案,例如is_single()
。
此外,WordPress使用变量$wp_query
,所以你应该选择另一个而不是破坏那个。
答案 1 :(得分:0)
我找到了解决方案:)
我在while和has循环之前添加了if(have_posts())和wp_reset_query()并且现在都很好。 :)
所以如果有人有同样的问题,这里是最终的代码..
<?php
query_posts( 'post_status=publish&orderby=rand' );
if ( have_posts()): while (have_posts()) : the_post();
$title_attr = array(
'title' => get_the_title(),
'alt' => get_the_title(),
'class' => get_the_title(),
);
echo '<a href="#post-'.get_the_ID().'" class="scroll theme">';
the_post_thumbnail('thumbnail',$title_attr);
echo '</a>';
endwhile; endif; wp_reset_query(); ?>