如何使WordPress的文章列表中支持自定义文章类型?

本文介绍了如何通过WordPress过滤器让自定义文章类型在Archives.php和搜索结果中显示。提供了三种代码方案:指定特定文章类型、自动支持所有自定义类型,以及将自定义类型加入搜索结果。核心是通过修改`pre_get_posts`和`the_search_query`过滤器实现文章类型的扩展显示。

WordPress基础教程
阅读时间: 18 分钟
最后更新时间:2025年11月13日

导语:作者在制作一个主题的时候,自定义了文章类型,然后又希望自定义类型的文章能够在Archives.php的循环中出现,那么需要使用过滤器了。

Archives.php

Archives.php仅显示类型“文章”的内容,如果你希望包含自定义文章类型的文章,那么可以加下面的代码添加到functions.php中:

function leaf_add_custom_types( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
$query->set( 'post_type', array(
'post', 'nav_menu_item', 'your-custom-post-type-here'
));
return $query;
}
}
add_filter( 'pre_get_posts', 'leaf_add_custom_types' );

自动支持所有的文章类型

如果你希望Archives.php自动支持所有的自定义文章类型,那么可以使用get_post_types来获得,然后设置它。

function leaf_add_custom_post_types_to_query($post_types){
$added = get_post_types(array( 'public'=>true,'_builtin'=>false));
foreach($added as $key=>$value){
$post_types[]=$key;
}
return $post_types;
}
function leaf_modify_archive_query( $query ) {
if( is_category() || is_tag() || is_date() && empty( $query->query_vars['suppress_filters'] ) ) {
$post_types = leaf_add_custom_post_types_to_query(array( 'post', 'nav_menu_item'));
$query->set( 'post_type', $post_types);
return $query;
}
}
add_filter( 'pre_get_posts', 'leaf_modify_archive_query' );

搜索结果

如果你希望搜索结果内容中也能自定义文章类型,请包含下面的代码。

function searchAll( $query ) {
if ( $query->is_search ) {
$query->set( 'post_type', array( 'post', 'page', 'feed', 'custom_post_type1', 'custom_post_type2'));
}
return $query;
}
add_filter( 'the_search_query', 'searchAll' );

这篇文章有用吗?

点击星号为它评分!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位评论此文章。

小兽wordpress

小兽wordpress

技术负责人
小兽wordpress凭借多年的wordpress企业主题制作经验,坚持以“为用户而生的wordpress主题”为宗旨,累计为10万多家客户提供品质wordpress建站服务,得到了客户的一致好评。我们一直用心对待每一个客户,我们坚信:“善待客户,将会成为终身客户”。小兽wordpress能坚持多年,是因为我们一直诚信。

相关文章

如何让线上业务更上一层楼

还没有WordPress网站

还没有WordPress网站

不管你从事什么行业,WordPress都会为你提供一个专业的主题模板。在WordPress市场上有成千上万的免费主题,适合很多中小企业。

查看所有模板
已经有WordPress网站

已经有WordPress网站

小兽WordPress诚邀你一起学习WordPress,愿与各方携手升级改善您的WordPress网站,一起交流网站加速,网站优化等问题。

马上交个朋友
微信联系
chat 扫码联系
模板建站
挑选模板
网站定制
免费诊断
咨询热线
咨询热线

189-0733-7671

返回顶部