我正在开发一个使用下划线起始主题的主题,我希望有一个只有最后一篇文章和分页的frontpage,然后有一个单独的页面,带有“归档”slug,以显示所有分页的文章。是否可以通过编程方式(在functions.php文件中添加过滤器和操作)执行此操作,而无需创建额外的模板?
提前感谢
UPDATE:
@ialocin回答
frontpage
我的部分问题。这就是我为
archives
我的部分问题:
function rewrite_init() {
add_rewrite_rule(\'archives\', \'index.php?archives=yes\', \'top\');
}
add_action(\'init\', \'rewrite_init\');
function rewrite_query_vars($query_vars) {
$query_vars[] = \'archives\';
return $query_vars;
}
add_action(\'query_vars\', \'rewrite_query_vars\');
function rewrite_template_include($template){
if (get_query_var(\'archives\')) {
$template = locate_template(array(\'archive.php\'));
}
return $template;
}
add_filter(\'template_include\', \'rewrite_template_include\');
最合适的回答,由SO网友:Nicolai Grossherr 整理而成
将首页/主页的主查询更改为is_front_page()
和/或is_home()
, 如下图所示:
add_action(\'pre_get_posts\',\'wpse104878_alter_main_query\');
function wpse104878_alter_main_query($query){
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
if( $query->is_main_query() && is_front_page() || is_home() ){
$query->query_vars[\'posts_per_page\'] = \'1\';
}
}
如果下划线starter主题有一个模板,归档页面应该可以工作。您可以分别更改该函数(类似于上述函数),使用
is_archive()
.