如何为登录用户在Easy Digital Downloads下载页隐藏ABC标签?
隐藏"ABC"下载标签的实现代码
要在前台标签列表中隐藏"ABC"标签,可通过WordPress的钩子函数实现。以下两种方案任选其一,添加到主题的functions.php文件即可:
方案1:过滤已获取的标签列表
该方法在系统返回标签数据前,过滤掉名称为"ABC"的标签:
add_filter( 'get_terms', 'remove_abc_download_tag', 10, 3 ); function remove_abc_download_tag( $terms, $taxonomies, $args ) { // 仅处理download_tag分类法的查询 if ( ! in_array( 'download_tag', $taxonomies ) ) { return $terms; } // 筛选出非ABC的标签 return array_filter( $terms, function( $term ) { // 若使用标签slug判断,替换为 $term->slug !== 'abc' return $term->name !== 'ABC'; } ); }
方案2:在查询阶段直接排除标签
该方法更高效,直接让数据库查询时就排除"ABC"标签:
add_action( 'pre_get_terms', 'exclude_abc_download_tag_from_query' ); function exclude_abc_download_tag_from_query( $query ) { // 仅针对前台的download_tag查询生效 if ( is_admin() || $query->query_vars['taxonomy'] !== 'download_tag' ) { return; } // 获取ABC标签的ID(可根据实际情况用slug替换name) $abc_term = get_term_by( 'name', 'ABC', 'download_tag' ); if ( $abc_term && ! is_wp_error( $abc_term ) ) { $query->query_vars['exclude'][] = $abc_term->term_id; } }
注意事项
- 若你的"ABC"标签使用的是自定义slug(比如
abc),请将代码中的name替换为slug,对应值改为实际slug。 - 上述代码会在所有前台展示download_tag的场景中隐藏"ABC"标签,包括标签云、产品详情页的标签列表等。
内容的提问来源于stack exchange,提问作者idomskt
相关产品推荐
相关产品推荐

