在构建或定制WordPress网站时,可能会遇到这样一个需求:希望页面中不仅能显示默认的文章类型(’post’),还能够展示其他自定义文章类型的内容。通过使用pre_get_posts
钩子,我们可以轻松实现这一目标,同时确保不会引入不必要的风险和问题。
为什么需要这样做?
默认情况下,WordPress的标签页只会显示标记了特定标签的默认文章类型的帖子。但是,如果你的网站使用了多个自定义文章类型,并且这些类型同样可能被标记上相应的标签,那么将它们也包含在标签页的查询结果中,无疑会增加网站内容的相关性和丰富性。
实现方法
为了达到上述目的,我们可以通过修改主查询来包含自定义文章类型。以下是一个具体的实现示例:
function add_my_custom_post_type_to_query($query) {
if ($query->is_main_query() && $query->is_home()) {
$query->set('post_type', array('post', 'your_custom_post_type'));
}
}
add_action('pre_get_posts', 'add_my_custom_post_type_to_query');
在这个例子中,请记得替换 'your_custom_post_type'
为你实际使用的自定义文章类型的机器名。如果需要包含多个自定义文章类型,只需将它们添加到数组中即可。
注意事项
- 限定条件:确保只对前端的主查询进行修改,并且仅限于标签页。
- 性能考虑:尽量保持查询逻辑简单,避免影响性能。
- 兼容性检查:测试与现有插件和主题的兼容性,防止出现冲突。
结语
通过上述步骤,你可以轻松地让你的WordPress网站中展示更多样化的内容。这不仅提升了用户体验,也为你的网站增加了灵活性。记住,在做出任何重大改动之前,务必先在本地环境或测试环境中进行充分的测试。
+1