Code前端首页关于Code前端联系我们

如何更改 WordPress 自定义帖子类型存档页面上的帖子数量?

terry 2年前 (2023-09-24) 阅读数 64 #后端开发

自定义帖子类型存档页面

pre_get_posts 就像页面上运行的主查询的预过滤器 - 如果您想对此类页面进行更改,最好使用 pre_get_posts 代替钩子 无需使用自定义 WP_Query()

  1. add_action( 'pre_get_posts', 'tl_project_page' );❀/ 显示页面 tl_project_page ( $query ) 上的所有项目 {
  2. if ( !is_admin() && $query->is_main_query() && is_post_type_archive( 'project' ) ) {
  3. $query->set( 'posts_per_page', '-1' ); // 显示多少个,将-1改为某个数字即可
  4. }
  5. }

如上,第四行项目是自定义文章类型,通过更改 posts_per_page 的值设置为 -1 以显示项目存档中的所有项目文章。如果您想每页显示 20 个,只需将 -1 更改为 20 。如果是其他文章类型,请将项目更改为文章类型。

多个自定义帖子类型存档页面

如果要将多个自定义帖子类型的存档帖子数量设置为相同的值,例如无限帖子,可以使用包含多个自定义帖子类型的数组,例如:

  1. is_post_type_archive ( array('project' , 'treatment', 'testimonial') )

自定义类别归档页面

同样,如果您想引用,可以更改自定义类别页面的数量改为以下代码:

  1. add_action( 'pre_get_posts', 'tl_project_tax_page' );
  2. // 显示project_category分类类别归档页面上的所有文章
  3. _page if ( !is_admin() && $query- >is_main_query() && is_tax('project_category') ) {
  4. $query->set(' posts_per_page', '-1' ); // 编辑显示的消息条数 -1 可以是具体数字
  5. }
  6. }

根据您实际的自定义分类编辑is_tax()的值。 posts_per_page 只需将 -1 更改为您想要的数字即可。

使用!is_admin()避免影响后台显示。如果您确实想更改后备列表,请不要使用此条件,而是使用 $query->is_main_query() 以确保它不会影响页面上的其他查询。

其他查询参数

您可以使用多个参数更改查询,例如:

  1. $query->set( 'orderby', 'title' );
  2. ($query'-> order ' , 'ASC' ) ;
  3. $query->set( 'post__not_in', array(7,11) ); // 排除特定 ID 的文章
  4. $query->set( 'cat', '- 1,-1347' ); // 排除具有特定 ID 的类
  5. $query->set( 'cat', '123' ); // 包含特定类

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门