通常,每页显示的文章数量默认为仪表板设置 > 阅读 > 博客页面至多显示 的值,您可能希望常规的文章采用这个数量,但是自定义文章类型不要采用。要更改自定义文章类型的存档页面中显示的文章数量,您可以使用带有一些传入参数的pre_get_posts操作来实现。
自定义文章类型存档页面
pre_get_posts就像在页面上运行的主查询的预过滤器 – 如果您要更改这样的页面,最好使用pre_get_posts钩子而不需要采用自定义的WP_Query()
add_action( \’pre_get_posts\’, \’tl_project_page\’ );
// 在项目存档页面显示所有项目
function tl_project_page( $query ) {
if ( !is_admin() && $query->is_main_query() && is_post_type_archive( \’project\’ ) ) {
$query->set( \’posts_per_page\’, \’-1\’ ); // 要显示多少个,就修改 -1 为具体的数字即可
}
}
如上,第四行的project 是自定义文章类型,通过将posts_per_page的值设置为-1,可以让项目(project)存档中显示所有项目文章。如果你希望每页显示20个,就修改 -1 为 20 即可。如果是其他文章类型,就修改 project 为你的文章类型即可。
多个自定义文章类型存档页面
如果您想将多个自定义文章类型存档文章数量设置为相同的值,例如不限文章数量,您可以使用数组来包含多个自定义文章类型,比如:
is_post_type_archive( array(\’project\’, \’treatment\’, \’testimonial\’) )
自定义分类存档页面
同样,如果您想更改自定义分类页面的数量,可以参考下面的代码:
add_action( \’pre_get_posts\’, \’tl_project_tax_page\’ );
// 在 project_category 分类法的分类存档页面显示所有文章
function tl_project_tax_page( $query ) {
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->set( \’order\’, \’ASC\’ );
$query->set( \’post__not_in\’, array(7,11) ); // 排除特定id的文章
$query->set( \’cat\’, \’-1,-1347\’ ); // 排除特定id的分类
$query->set( \’cat\’, \’123\’ ); // 包含特定的分类
更多的参数,可以参考WP_Query
本网站名称:创码者资源网
本站永久网址: http://www.cmzym.top/
本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
本站为非盈利网站,一切付费内容(包括但不限于会员充值,资源付费),均为用户自愿赞助,且所有资金均用于网站维护
本站资源均收录于互联网,所以不能保证每个细节都符合你的要求,也可能存在未知的BUG与瑕疵,因虚拟资源可复制特性,所以不接受任何理由的退款兑现,请阅 读本站声明和相关条款后再进行支付下载
本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长 :1326632303@qq.com 进行删除处理。
本本站采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可


















暂无评论内容