本教程将详细指导如何在wordpress中正确获取自定义文章类型的分类,即自定义分类法(custom taxonomy)的术语(terms)。不同于针对内置“分类”的`get_categories()`函数,获取自定义分类法术语需使用`get_terms()`函数,通过指定分类法名称来精确检索,确保内容展示的灵活性与准确性。
在WordPress中,内容组织主要通过分类(Categories)和标签(Tags)实现。然而,当处理自定义文章类型(Custom Post Types)时,为了提供更灵活、更贴合业务逻辑的分类方式,WordPress引入了自定义分类法(Custom Taxonomies)。
理解这一区别至关重要,因为错误的函数选择会导致无法获取到期望的数据。
要正确获取自定义文章类型所关联的自定义分类法术语,我们应该使用更通用的get_terms()函数。此函数能够检索WordPress中任何注册的分类法下的术语。
核心参数:
get_terms()函数接受一个参数数组,其中最关键的是'taxonomy'。
示例代码:获取并显示自定义分类法术语
假设您已在functions.php中注册了一个名为'pdf_cat'的自定义分类法,并将其关联到'pdf'自定义文章类型:
// functions.php 中的自定义分类法注册示例
function register_pdf_taxonomy() {
$labels = array(
'name' => _x( 'PDF分类', 'Taxonomy General Name', 'text_domain' ),
'singular_name' => _x( 'PDF分类', 'Taxonomy Singular Name', 'text_domain' ),
'menu_name' => __( 'PDF分类', 'text_domain' ),
'all_items' => __( '所有PDF分类', 'text_domain' ),
'parent_item' => __( '父级PDF分类', 'text_domain' ),
'parent_item_colon' => __( '父级PDF分类:', 'text_domain' ),
'new_item_name' => __( '新PDF分类名称', 'text_domain' ),
'add_new_item' => __( '添加新PDF分类', 'text_domain' ),
'edit_item' => __( '编辑PDF分类', 'text_domain' ),
'update_item' => __( '更新PDF分类', 'text_domain' ),
'view_item' => __( '查看PDF分类', 'text_domain' ),
'separate_items_with_commas' => __( '用逗号分隔PDF分类', 'text_domain' ),
'add_or_remove_items' => __( '添加或移除PDF分类', 'text_domain' ),
'choose_from_most_used' => __( '从常用PDF分类中选择', 'text_domain' ),
'popular_items' => __( '热门PDF分类', 'text_domain' ),
'search_items' => __( '搜索PDF分类', 'text_domain' ),
'not_found' => __( '未找到', 'text_domain' ),
'no_terms' => __( '无PDF分类', 'text_domain' ),
'items_list' => __( 'PDF分类列表', 'text_domain' ),
'items_list_navigation' => __( 'PDF分类列表导航', 'text_domain' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true, // 是否分层,类似分类
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => false,
);
register_taxonomy( 'pdf_cat', array( 'pdf' ), $args ); // 将 'pdf_cat' 关联到 'pdf' 文章类型
}
add_action( 'init', 'register_pdf_taxonomy', 0 );现在,在您的页面模板中,可以使用以下代码获取并显示'pdf_cat'分类法下的所有术语:
'pdf_cat', // 指定自定义分类法的名称
'hide_empty' => false, // 显示所有术语,即使没有关联文章
'orderby' => 'name', // 按名称排序
'order' => 'ASC', // 升序排列
);
$terms = get_terms($args);
if (!empty($terms) && !is_wp_error($terms)) {
echo '';
/*
// 如果您想生成列表,可以使用 没有找到任何PDF分类。
'; } ?>这段代码首先定义了get_terms()的参数,然后调用该函数获取术语列表。接着,它会遍历这些术语,为每个术语生成一个链接,并将其显示在页面上。get_term_link($term)是获取特定术语URL的正确方式。
获取到自定义分类法术语后,通常的下一步是根据用户选择的术语来筛选和显示相关的自定义文章类型。这可以通过WP_Query配合tax_query参数来实现。
示例代码:根据自定义分类法术语查询文章
假设您已经从URL参数或其他方式获取到了当前选中的自定义分类法术语的slug。
'pdf', // 指定自定义文章类型
'posts_per_page' => 15,
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'pdf_cat', // 自定义分类法名称
'field' => 'slug', // 根据术语的slug进行查询
'terms' => $current_term_slug, // 要查询的术语slug
),
),
);
// 如果没有选择特定的分类法术语,则移除 tax_query,显示所有pdf文章
if (empty($current_term_slug)) {
unset($args['tax_query']);
}
$custom_query = new WP_Query($args);
if ($custom_query->have_posts()) :
echo '' . (empty($current_term_slug) ? '所有PDF' : get_term_by('slug', $current_term_slug, 'pdf_cat')->name . '下的PDF') . '
';
echo '没有找到相关文章。
'; endif; ?>这段代码展示了如何使用WP_Query的tax_query参数来构建一个基于自定义分类法术语的查询。tax_query允许您指定分类法名称、查询字段(如slug、term_id)以及要匹配的术语。
数: 根据需求决定是否显示没有关联文章的分类法术语。如果希望用户只能看到有内容的分类,请保持'hide_empty' => true(默认值)。正确获取和利用自定义文章类型的分类(即自定义分类法术语)是构建复杂WordPress网站的关键技能。通过掌握get_terms()函数来检索术语,并结合WP_Query的tax_query参数来筛选文章,您可以为用户提供强大且直观的内容导航体验。遵循本教程中的指导和最佳实践,将确保您的WordPress开发工作更加高效和健壮。
# php
# word
# html
# go
# wordpress
# ai
# pdf
# 区别
# 排列
# count
# 循环
# 参数数组
相关文章:
如何在新浪SAE免费搭建个人博客?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何在IIS中新建站点并解决端口绑定冲突?
javascript中对象的定义、使用以及对象和原型链操作小结
制作网站外包平台,自动化接单网站有哪些?
javascript中的try catch异常捕获机制用法分析
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
魔毅自助建站系统:模板定制与SEO优化一键生成指南
建站之星好吗?新手能否轻松上手建站?
如何通过cPanel快速搭建网站?
如何用好域名打造高点击率的自主建站?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何用PHP工具快速搭建高效网站?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
建站之星如何实现五合一智能建站与营销推广?
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何在IIS中新建站点并配置端口与物理路径?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
如何解决VPS建站LNMP环境配置常见问题?
如何制作算命网站,怎么注册算命网站?
兔展官网 在线制作,怎样制作微信请帖?
盘锦网站制作公司,盘锦大洼有多少5G网站?
如何选择服务器才能高效搭建专属网站?
如何制作网站标识牌,动态网站如何制作(教程)?
C#怎么创建控制台应用 C# Console App项目创建方法
音乐网站服务器如何优化API响应速度?
linux top下的 minerd 木马清除方法
Python文件管理规范_工程实践说明【指导】
移民网站制作流程,怎么看加拿大移民官网?
建站主机SSH密钥生成步骤及常见问题解答?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
建站主机选虚拟主机还是云服务器更好?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
建站之星IIS配置教程:代码生成技巧与站点搭建指南
建站之星×万网:智能建站系统+自助建站平台一键生成
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
如何快速搭建虚拟主机网站?新手必看指南
如何基于云服务器快速搭建网站及云盘系统?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
高防服务器如何保障网站安全无虞?
如何快速完成中国万网建站详细流程?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
建站之星如何保障用户数据免受黑客入侵?
*请认真填写需求信息,我们会在24小时内与您取得联系。