在我的wordpress索引中,我使用自定义查询:
$paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
$project_query = new WP_query(array(
\'post_type\' => \'project\',
\'paged\' => $paged,
\'posts_per_page\' => 5
));
我正在使用
wp-paginate 设置页码,但不管怎样,只要我尝试转到下一页,例如:
http://domain/page/2
我得到一个404错误。
我真的一辈子都搞不清楚发生了什么事。我已经将wordpress阅读选项设置为相同的数字,并且我的永久链接结构设置为Post name
.
非常感谢任何提示,我知道分页404是很多人的常见问题,但我还没有找到与索引有相同问题的人。
SO网友:Milo
404中是否存在页面或结果取决于主查询的结果,这发生在加载模板之前。WordPress不“知道”您的自定义查询,它与主查询是分开的,并且只有在主查询导致加载包含它的模板时才会发生。
您可以在主查询通过发送到数据库之前修改它,而不是创建此自定义查询pre_get_posts
行动此代码将放在您的主题中functions.php
文件:
function wpa_front_page_projects( $query ) {
if ( $query->is_front_page() && $query->is_main_query() ) {
$query->set( \'post_type\', array( \'project\' ) );
$query->set( \'posts_per_page\', 5 );
}
}
add_action( \'pre_get_posts\', \'wpa_front_page_projects\' );