WordPress is_single()在自定义WP_Query中始终返回true

我在单个帖子页面上使用自定义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 is_single()在自定义WP_Query中始终返回true】我不认为在wordpress的核心中匹配$ post-> post_title是告诉它单个发布页面的好主意。也许我错了并且误会了这一点。

    推荐阅读