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

导语:作者在制作一个主题的时候,自定义了文章类型,然后又希望自定义类型的文章能够在Archives.php的循环中出现,那么需要使用过滤器了。Archives.phpArchives.php仅显示类型“文章”的内容,如果你希望包含自定义文章类型的文章,那么可以加下面的代码添加到functions.php中:functi...

导语:作者在制作一个主题的时候,自定义了文章类型,然后又希望自定义类型的文章能够在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' );

给TA打赏
共{{data.count}}人
人已打赏
wordpress教程

WordPress小工具的操作

2023-2-16 15:52:14

wordpress教程

wordpress主题如何使用自己的设计稿

2023-2-16 15:52:14

【腾讯云】11.11云上盛惠!云服务器首年1.8折起,买1年送3个月!
11.11云上盛惠!海量产品·轻松上云!云服务器首年1.8折起,买1年送3个月!超值优惠,性能稳定,让您的云端之旅更加畅享。
查看更多相关信息>>
在线咨询
站长

(工作日 10:00 - 22:30 为您服务)

2026-07-08 03:50:04

您好,无论是售前、售后、意见建议……均可通过联系工单与我们取得联系。

猜你想问:

  • 购买的模板免费包安装吗?

  • 这个演示地址有吗?

  • 购买vip会员可以下载哪些模板?

您的留言我们已经收到,我们将会尽快跟您联系!
取消
立即选择任一渠道联系我们