如何从<?php
$wp_query = null;
$args = array(
'post_type' => 'glavna_vijest',
'numberposts' => 2
);
$wp_query = new WP_Query($args);
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<h3><?php the_title(); ?></h3>
<?php endwhile; ?>
中的相关帖子中排除已打开的帖子?
这是我的代码:
{{1}}
答案 0 :(得分:1)
您想知道如何不包含相关帖子中的当前帖子。正确的吗?
您知道帖子ID,因为它是一个帖子。这是当前正在显示的那个。您可以使用get_the_ID()
并将其存储到名为$current_post_id = get_the_ID();
的变量中。
当您运行相关帖子的查询时,请使用参数post__not_in
并使用当前帖子ID指定它。
在single.php
模板中,您可以使用get_the_ID()
。然后,您可以将该帖子ID传递给相关内容函数。
使用上面的代码,您可以构建一个单独的函数来执行相关的内容部分,如下所示:
/**
* Build and then render the related posts
* section of the web page.
*
* @since 1.0.0
*
* @param int $current_post_id
*
* @return void
*/
function render_related_posts( $current_post_id ) {
$args = array(
'post_type' => 'glavna_vijest',
'posts_per_page' => 2,
'post__not_in' => array( $current_post_id ),
'nopaging' => false,
// You may want to add a category query too
// to make it more relatable to the current post
);
$related_posts_query = new WP_Query( $args );
if ( ! $related_posts_query->have_posts() ) {
return;
}
while( $related_posts_query->have_posts() ) {
$related_posts_query->the_post();
// do the rendering
}
}
然后你可以在single.php
模板文件中调用这样的函数:
render_related_posts( get_the_ID() );
您需要根据自己的特定需求调整代码。您可能希望扩展可关联的内容,以按元数据,类别或其他方式对其进行过滤,以缩小潜在帖子的范围。