如何更改 WordPress 自定义帖子类型存档页面上的帖子数量?
自定义帖子类型存档页面
pre_get_posts
就像页面上运行的主查询的预过滤器 - 如果您想对此类页面进行更改,最好使用 pre_get_posts
代替钩子 无需使用自定义 WP_Query()
add_action( 'pre_get_posts', 'tl_project_page' );❀/ 显示页面 tl_project_page ( $query ) 上的所有项目 {
if ( !is_admin() && $query->is_main_query() && is_post_type_archive( 'project' ) ) {
$query->set( 'posts_per_page', '-1' ); // 显示多少个,将-1改为某个数字即可
}
}
如上,第四行项目
是自定义文章类型,通过更改 posts_per_page
的值设置为 -1
以显示项目存档中的所有项目文章。如果您想每页显示 20 个,只需将 -1
更改为 20
。如果是其他文章类型,请将项目
更改为文章类型。
多个自定义帖子类型存档页面
如果要将多个自定义帖子类型的存档帖子数量设置为相同的值,例如无限帖子,可以使用包含多个自定义帖子类型的数组,例如:
is_post_type_archive ( array('project' , 'treatment', 'testimonial') )
自定义类别归档页面
同样,如果您想引用,可以更改自定义类别页面的数量改为以下代码:
add_action( 'pre_get_posts', 'tl_project_tax_page' );
// 显示project_category分类类别归档页面上的所有文章
_page if ( !is_admin() && $query- >is_main_query() && is_tax('project_category') ) {
$query->set(' posts_per_page', '-1' ); // 编辑显示的消息条数 -1 可以是具体数字
}
}
根据您实际的自定义分类编辑is_tax()
的值。 posts_per_page
只需将 -1 更改为您想要的数字即可。
使用!is_admin()
避免影响后台显示。如果您确实想更改后备列表,请不要使用此条件,而是使用 $query->is_main_query()
以确保它不会影响页面上的其他查询。
其他查询参数
您可以使用多个参数更改查询,例如:
$query->set( 'orderby', 'title' );
($query'-> order ' , 'ASC' ) ;
$query->set( 'post__not_in', array(7,11) ); // 排除特定 ID 的文章
$query->set( 'cat', '- 1,-1347' ); // 排除具有特定 ID 的类
$query->set( 'cat', '123' ); // 包含特定类
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。