我在单个帖子页面上使用自定义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;
检查帖子标题是否告诉我一页是正常的吗?
#1
我能够通过不提供$ post, 而是给is_single提供$ post-> ID来解决此问题:
is_single($post->ID);
我不认为在wordpress的核心中匹配$ post-> post_title是告诉它单个发布页面的好主意。也许我错了并且误会了这一点。
评论前必须登录!
注册