排除所有其他解决方案,至少还剩下一个: template_redirect
:
function wpse121308_redirect_homepage() { // Check for blog posts index // NOT site front page, // which would be is_front_page() if ( is_home() ) { wp_redirect( get_category_link( $id ) ); exit(); } } add_action( 'template_redirect', 'wpse121308_redirect_homepage' );
您将需要通过适当的类别 $id
, 当然。
重定向的好处 template_redirect
是您只进行一次模板加载,而不是第二次重定向 后 模板加载。
请注意,您甚至可以更早地挂接到流程中,例如 pre_get_posts
,从而可能保存整个查询请求:
add_action( 'pre_get_posts', 'wpse121308_redirect_homepage' );
原始答案
如果您只想在博客文章索引中显示特定类别,您可以使用主要的简单过滤器来完成 $wp_query
在 pre_get_posts
:
function wpse1862_pre_get_posts( $query ) { // Only modify the main query // on the blog posts index page if ( is_home() && $query->is_main_query() ) { $query->set( 'category_name', 'category-slug-here' ); } } add_action( 'pre_get_posts', 'wpse1862_pre_get_posts' );
如果你想修改 模板,那么您可以执行以下两项操作之一:
如果您希望博客文章索引 URL 看起来像:
www.example.com/main
然后你可以使用 静态首页,并指定一个名为“main”的静态页面作为您的博客文章索引。
如果这是你的目标:
我真的想要重定向。 我想要主页(
http://example.com/
) 重定向到类别页面(看起来像http://example.com/main/
)
…那么接受的答案对于您的用例是正确的。
原文链接:https://www.wordpresshy.com/390625
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END