
本教程将详细指导如何在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_n*igation' => __( 'PDF分类列表导航', 'text_domain' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true, // 是否分层,类似分类
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_n*_menus' => true,
'show_tagcloud' => false,
);
register_taxonomy( 'pdf_cat', array( 'pdf' ), $args ); // 将 'pdf_cat' 关联到 'pdf' 文章类型
}
add_action( 'init', 'register_pdf_taxonomy', 0 );现在,在您的页面模板中,可以使用以下代码获取并显示'pdf_cat'分类法下的所有术语:
<?php
$args = array(
'taxonomy' => 'pdf_cat', // 指定自定义分类法的名称
'hide_empty' => false, // 显示所有术语,即使没有关联文章
'orderby' => 'name', // 按名称排序
'order' => 'ASC', // 升序排列
);
$terms = get_terms($args);
if (!empty($terms) && !is_wp_error($terms)) {
echo '<select name="pdf_category_filter" onchange="location = this.value;">'; // 示例:生成一个下拉菜单
echo '<option value="">选择一个PDF分类</option>';
foreach ($terms as $term) {
// 获取自定义分类法术语的链接
$term_link = get_term_link($term);
if (!is_wp_error($term_link)) {
echo '<option value="' . esc_url($term_link) . '">' . esc_html($term->name) . '</option>';
}
}
echo '</select>';
/*
// 如果您想生成列表,可以使用 <ul><li> 结构
echo '<ul>';
foreach ($terms as $term) {
$term_link = get_term_link($term);
if (!is_wp_error($term_link)) {
echo '<li><a class="ctg" href="' . esc_url($term_link) . '">' . esc_html($term->name) . '</a></li>';
}
}
echo '</ul>';
*/
} else {
echo '<p>没有找到任何PDF分类。</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/ai/2081">
<img src="https://img.php.cn/upload/ai_manual/000/000/000/175679957430506.png" alt="NoCode">
</a>
<div class="aritcle_card_info">
<a href="/ai/2081">NoCode</a>
<p>美团推出的零代码应用生成平台</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="NoCode">
<span>180</span>
</div>
</div>
<a href="/ai/2081" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="NoCode">
</a>
</div>
';
}
?>这段代码首先定义了get_terms()的参数,然后调用该函数获取术语列表。接着,它会遍历这些术语,为每个术语生成一个链接,并将其显示在页面上。get_term_link($term)是获取特定术语URL的正确方式。
获取到自定义分类法术语后,通常的下一步是根据用户选择的术语来筛选和显示相关的自定义文章类型。这可以通过WP_Query配合tax_query参数来实现。
示例代码:根据自定义分类法术语查询文章
假设您已经从URL参数或其他方式获取到了当前选中的自定义分类法术语的slug。
<?php
// 假设从URL获取当前选中的分类法术语slug
// 例如:http://yourdomain.com/pdf-category/my-term-slug/
// 或者通过 $_GET['pdf_cat_slug'] 获取
$current_term_slug = get_query_var('term'); // 如果是分类法归档页,可以直接获取
if (empty($current_term_slug)) {
$current_term_slug = isset($_GET['pdf_cat_slug']) ? sanitize_text_field($_GET['pdf_cat_slug']) : '';
}
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(
'post_type' => '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->h*e_posts()) :
echo '<h2>' . (empty($current_term_slug) ? '所有PDF' : get_term_by('slug', $current_term_slug, 'pdf_cat')->name . '下的PDF') . '</h2>';
echo '<ul>';
while ($custom_query->h*e_posts()) : $custom_query->the_post();
?>
<li>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php the_excerpt(); // 显示文章摘要 ?>
</li>
<?php
endwhile;
echo '</ul>';
// 分页链接
echo paginate_links(array(
'total' => $custom_query->max_num_pages,
'current' => max(1, get_query_var('paged')),
'format' => '?paged=%#%',
'prev_text' => __('« 上一页'),
'next_text' => __('下一页 »'),
));
wp_reset_postdata(); // 重置主查询,避免影响后续查询
else :
echo '<p>没有找到相关文章。</p>';
endif;
?>这段代码展示了如何使用WP_Query的tax_query参数来构建一个基于自定义分类法术语的查询。tax_query允许您指定分类法名称、查询字段(如slug、term_id)以及要匹配的术语。
正确获取和利用自定义文章类型的分类(即自定义分类法术语)是构建复杂WordPress网站的关键技能。通过掌握get_terms()函数来检索术语,并结合WP_Query的tax_query参数来筛选文章,您可以为用户提供强大且直观的内容导航体验。遵循本教程中的指导和最佳实践,将确保您的WordPress开发工作更加高效和健壮。
以上就是WordPress自定义文章类型分类(术语)获取指南的详细内容,更多请关注php中文网其它相关文章!
# word
# html
# go
# wordpress
# php
# 这段
# 厦门网站推广找哪家
# 制度店铺营销推广内容
# 校园电子商务的网站建设
# 没有找到
# 怎么看
# 可以使用
# 相关文章
# 您可以
# 升序
# 的是
# 您的
# 自定义
# 排列
# 区别
# pdf
# ai
# 恩施绍兴网站推广
# 营销推广方案写什么类型
# 有实力SEO优化价格
# 云南搜索关键词排名推荐
# seo关键词排名艾金手指下拉十九
# 成都网站优化做什么
# 灵宝网站建设与开发
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
C++怎么解决数值计算中的精度问题_C++浮点数误差与数值稳定性分析
百度浏览器无法安装扩展程序_百度浏览器插件安装失败原因解析
从HTML表单获取逗号分隔值并转换为NumPy数组进行预测
Word如何将文字快速转成表格 Word文本转换成表格功能使用技巧【效率】
作业帮网页版不用下载入口 在线问老师快速答疑
小红书网页版在线直达 小红书网页版免费登录入口
《长生:天机降世》火塔小怪大全
Golang如何操作指针参数_Go pointer参数传递规则
掌握Go App Engine项目结构与GOPATH:包管理与导入实践
济南公交卡手机充值指南
汽水音乐官方网站登录入口_汽水音乐网页版进入链接
LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用
Dagster资产间数据传递与用户配置管理教程
为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践
荣耀盒子应用管理技巧
在Flask应用中安全高效地更新SQLAlchemy用户数据
QQ阅读小说搜索入口地址_QQ阅读小说搜索入口地址搜索在线阅读
Fedora怎么安装 Fedora Workstation安装步骤
C++怎么实现一个红黑树_C++高级数据结构与平衡二叉搜索树
《海底捞》点外卖方法
鲁班大师乓乓皮肤获取方法
青橙手机语音助手怎么唤醒_青橙手机语音助手设置与唤醒方法
Win10锁屏时间怎么设置 Win10调整自动锁屏时间方法
WPS文字如何进行简繁转换
《真我》申请退款方法
如何外贸网站设计-能留住客户提升用户体验!
《微信》视频号原创声明开启方法
使用Python和NLTK从文本中高效提取名词的实用教程
大众点评了却看不到是怎么回事
LINUX怎么查看显卡信息_LINUX查看GPU状态
Win10如何关闭操作中心通知 Win10免打扰设置全攻略【清爽】
excel怎么计算平均值 excel平均函数*ERAGE使用教学
MongoDB聚合管道:高效统计列表中各项的文档数量
顺丰快递收费标准查询_如何查看顺丰最新收费价格
苹果SE如何开启单手模式_苹果SE单手操作功能
追剧达人如何发弹幕
Lar*el Dusk 测试中管理浏览器权限:以剪贴板访问为例
以下哪一个是适应长期护理制度发展而设立的新职业
TikTok搜索结果不显示怎么办 TikTok搜索刷新与优化方法
mail.qq.com登录入口 QQ邮箱网页版直达
j*a中赋值运算符是什么?
如何在 WordPress 前端实现内容提交:古腾堡编辑器的替代方案与实践
J*aScript模拟悬停与点击:自动化网页动态元素交互指南
mysql通配符能用于日志查询吗_mysql通配符在系统日志查询中的实际使用方法
t3出行如何使用微信支付
J*aScript 数值去小数位处理:多种方法与实践
如何取消数字签名
VB表达式书写规则解析
使用Selenium在无头Chrome中交互动态菜单和复选框的策略
Python定时发送QQ消息
2025-11-24
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。