如何获取当前页面ID并将其与同一页面内的循环页面进行比较?

时间:2019-09-05 作者:user174691

我有一个名为overview.php 其中显示了属于同一类别的所有页面。因此,所有具有相同类别的页面都会被打印,但当前主页也会被打印,因为它也属于相同的类别,我不希望发生这种情况。因此,在循环中,我希望获得每个查询页面的ID,并将其与当前主页ID进行比较,以便在循环时不会发生任何事情。

这是我查询页面的方式:

$paged = (get_query_var( \'paged\' )) ? get_query_var( \'paged\' ) : 1;
        $args = array(
            \'post_type\' => \'page\',
            \'post_status\' => \'Published\',
            \'category_name\' => \'Football League\',
            \'posts_per_page\' => 12,
            \'paged\' => $paged,
        );
        $arr_posts = new WP_Query( $args );

        if ( $arr_posts->have_posts() ) :

            while ( $arr_posts->have_posts() ) :
                $arr_posts->the_post();
                ?>
打印有关每个页面的内容。。

endwhile;
            wp_pagenavi(
                array(
                    \'query\' => $arr_posts,
                )
            );
        endif;
        ?>

2 个回复
SO网友:Jacob Peattie

可以使用访问当前查询的页面get_queried_object(), 或者,如果您只需要ID,您可以使用get_queried_object_id().

然而,虽然将循环中的当前ID与查询的对象ID进行比较将允许您跳过特定的帖子,但这不会很好地配合分页,因为包含当前页面的页面将只显示11页,而不是预期的12页。

要排除当前页面,可以使用post__not_in, 像这样:

$args = array(
    \'post_type\'      => \'page\',
    \'post_status\'    => \'Published\',
    \'category_name\'  => \'Football League\',
    \'posts_per_page\' => 12,
    \'paged\'          => $paged,
    \'post__not_in\'   => get_queried_object_id(),
);
然而,如果您有很多页面,那么它的性能就不是很好。

综上所述,如果您试图创建按类别组织的分页内容列表,那么我不会这样做。这似乎是Custom Post TypeCustom Taxonomy.

SO网友:Greg

您可以将“当前”页面ID存储在循环外部的变量中。

相关推荐

如何处理多个forloop?

I have and order\\u id as array但是wc_get_order 一次只接受一个id如何循环使用order\\u id并让项目id和项目名称的列表?我在课堂上使用这个。如果按如下所示传递单个id,则其工作正常 public function getStuffDone() { order_id =array(358,368) $order = wc_get_or