将GET_NEXT_POST限制为来自同一作者的帖子

时间:2020-10-31 作者:lastnoob

我想限制get_next_postget_previous_post 使用筛选器发送给同一作者。我在循环中使用它,因为我需要为我循环的每个帖子显示上一篇和下一篇帖子。

这就是我迄今为止在我的函数中所尝试的。php文件:

// PREVIOUS AND NEXT POST FROM SAME AUTHOR
add_filter( "get_next_post_where", function($where, $in_same_term, $excluded_terms, $taxonomy, $post){
  $where .= " AND p.post_author=\'".$post->post_author."\'";
  return $where;
}, 10, 5);

add_filter( "get_previous_post_where", function($where, $in_same_term, $excluded_terms, $taxonomy, $post){
  $where .= " AND p.post_author=\'".$post->post_author."\'";
  return $where;
}, 10, 5);
在实际模板中,我使用以下循环:

$story_loop = new WP_Query( array(
    \'post_type\' => \'stories\',
    \'posts_per_page\' => -1
  )
);

while ( $story_loop->have_posts() ) : $story_loop->the_post();

  $next_post = get_next_post();
  $prev_post = get_previous_post();

endwhile; wp_reset_query();
但是,$next\\u post和$prev\\u post不限于同一作者。

我更愿意避免仅仅为了每个帖子的同一作者获得下一篇帖子而进行新的循环,因此过滤get\\u next\\u帖子将是理想的选择。

1 个回复
SO网友:Madalin Fintina

如果将作者id添加到WP\\U查询中,则next\\u post和previous\\u post将自动处理该问题。

$query = new WP_Query( array( \'author\' => 123 ) );
$query = new WP_Query( array( \'author_name\' => \'rami\' ) );

https://developer.wordpress.org/reference/classes/wp_query/

希望这有帮助,保持安全!

相关推荐

如何在Reaction JS/Gutenberg中使用wp.hooks.addAction()?

我能够成功使用wp.hooks.applyFilters() 和wp.hooks.addFilter(), 但我无法使用wp.hooks.addAction(). 但是console.log() 在某个操作的回调中运行良好。这是我的代码:import { createHooks } from \'@wordpress/hooks\'; let globalHooks = createHooks(); const Header = () => { r