如何获取WordPress中当前国家对应的tag_id链接?
解决方案:获取当前国家关联的标签归档链接
嘿,我来帮你搞定这个问题!你遇到的核心问题是get_tag_link(7)默认生成的是全站范围内relaxation标签的归档链接,没有关联当前页面的国家分类过滤。下面是具体的实现步骤和代码:
关键思路
从你页面里的single_term_title('Country: ')可以判断,当前页面是国家分类的归档页。我们需要:
- 获取当前页面对应的国家分类对象
- 在
relaxation标签的基础链接上,附加当前国家的过滤参数,生成仅包含该国家下对应标签文章的链接
具体代码实现
<?php // 1. 获取当前页面的国家分类对象 $current_country = get_queried_object(); // 确保当前对象是有效的分类术语 if ($current_country && is_a($current_country, 'WP_Term')) { // 2. 获取relaxation标签的基础链接(tag ID为7) $base_tag_link = get_tag_link(7); // 3. 附加当前国家的过滤参数(这里假设你的国家分类法slug是`country`,请根据实际情况修改) $filtered_tag_link = add_query_arg( array( 'country' => $current_country->slug, // 用分类slug作为过滤参数值 // 如果你的查询需要用分类ID,可改为 'country__in' => array($current_country->term_id) ), $base_tag_link ); // 4. 输出带过滤的标签链接(示例) echo '<a href="' . esc_url($filtered_tag_link) . '">Relaxation Tours in ' . esc_html($current_country->name) . '</a>'; } ?>
补充说明
- 分类法slug确认:如果你的国家分类法注册时用的不是
country,请替换代码中'country'为实际的分类法slug(可以在WordPress后台「分类法」设置里查看) - 参数安全性:使用
esc_url()和esc_html()确保输出的链接和文本符合WordPress安全规范 - 自定义查询适配:如果你的页面已经有自定义
WP_Query(比如你代码片段里的array_merge部分),这个过滤后的链接会自动适配你的查询逻辑,因为它传递了国家分类的过滤参数
内容的提问来源于stack exchange,提问作者WP_LOAD
相关产品推荐
相关产品推荐

