我在一个帖子页面上使用自定义WP_Query(它显示了最近的帖子列表):
$recent = new WP_Query($args);
while ($recent->have_posts()) {
$recent->the_post();
get_template_part('template-parts/content', get_post_format());
}
问题是:在模板中我检查is_single()条件,它总是返回true(没有传递参数)。当我尝试is_single($ post)时,有时会返回true,有时会返回false。
UPD 1:
我在主题文件夹中使用template-parts / content.php模板。代码是这样的:
if ( is_single($post) ) :
the_title( '<h1 class="entry-title pb-1 '.ta_content_paragraphs_paddings().'">', '</h1>' );
else :
the_title( '<h2 class="entry-title pb-1 '.ta_content_paragraphs_paddings().'"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
endif; ?>
UPD 2: 我发现为什么它有时会以$ post作为参数返回true,它发生在我的单个帖子标题与最近的帖子标题相同时。这部分代码在class-wp-query中,函数is_single:
} elseif ( in_array( $post_obj->post_title, $post ) ) { // returns here
return true;
检查帖子标题是否告诉我单页是否正常?
答案 0 :(得分:0)
我能够通过提供非$ post,但$ post&gt; ID来解决这个问题:is_single:
is_single($post->ID);
我不认为在wordpress核心中匹配$ post-&gt; post_title是一个好主意告诉它的单个帖子页面。也许我错了,误解了这一点。