📅  最后修改于: 2023-12-03 14:48:32.535000             🧑  作者: Mango
在 WordPress 中,经常需要在前端页面上循环文章列表,但有时候需要排除当前文章。下面我们将介绍如何在 WordPress 中实现这个功能。
WP_Query
循环文章WP_Query
是 WordPress 中用于查询文章的类。我们可以使用它来查询满足特定条件的文章列表。
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 10,
);
$posts = new WP_Query( $args );
if ( $posts->have_posts() ) {
while ( $posts->have_posts() ) {
$posts->the_post();
// 输出文章标题、内容等
}
}
wp_reset_postdata(); // 重置文章查询
在上面的例子中,我们使用 WP_Query
查询 10 篇已发布文章。在循环文章时,我们使用 the_post()
函数设置全局 $post
变量,以便我们可以访问当前文章的各种信息。
现在我们需要在循环文章列表时排除当前文章。为了达到这个目的,我们需要在查询参数中添加一个条件,即 post__not_in
参数。
$post_id = get_the_ID(); // 获取当前文章的 ID
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 10,
'post__not_in' => array( $post_id ),
);
$posts = new WP_Query( $args );
if ( $posts->have_posts() ) {
while ( $posts->have_posts() ) {
$posts->the_post();
// 输出文章标题、内容等
}
}
wp_reset_postdata(); // 重置文章查询
在上面的例子中,我们首先使用 get_the_ID()
函数获取当前文章的 ID。然后将其添加到 post__not_in
参数中,以便在文章循环中排除当前文章。
下面是完整的 PHP 代码,用于在 WordPress 中循环文章但排除当前文章。
$post_id = get_the_ID(); // 获取当前文章的 ID
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 10,
'post__not_in' => array( $post_id ),
);
$posts = new WP_Query( $args );
if ( $posts->have_posts() ) {
while ( $posts->have_posts() ) {
$posts->the_post();
// 输出文章标题、内容等
}
}
wp_reset_postdata(); // 重置文章查询
在 WordPress 中,我们可以使用 WP_Query
类查询文章并循环文章列表。使用 post__not_in
参数,我们可以将当前文章排除在循环之外。这样,在前端页面上循环文章列表时,我们就可以避免重复显示当前文章。