个性化阅读
专注于IT技术分析

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的核心中匹配$ post-> post_title是告诉它单个发布页面的好主意。也许我错了并且误会了这一点。

赞(0) 打赏
未经允许不得转载:srcmini » WordPress is_single()在自定义WP_Query中始终返回true
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏