我正在为WordPress使用“ Frontend Submit Pro”和“ ACF(非专业)插件”。 我正在使用这些插件为我的用户创建前端帖子。
我有200多个类别,因此我想让用户更轻松地选择类别。我将创建多个表单,每个表单都会有一些类别可供用户选择。
现在,我使用以下过滤器从表单中排除某些类别。
add_filter('acf/fields/taxonomy/query/name=kathgories', 'exclude_categories', 10, 2);
function exclude_categories( $args, $field ) {
global $uncategorized_id;
$args['exclude'] = array(290,287,283,289,281,291,286,280,284,279); //the IDs of the excluded terms
return $args;
}
因为我有很多类别,所以我很难排除上面代码中的200个类别。
所以我想要一个过滤器,该过滤器将排除所有类别,并且只包括我希望在每种形式中显示的5-10个类别。 我不知道该怎么做,所以我问是否有人可以提供帮助。
我还希望每个过滤器仅适用于一种形式。我需要一些方法将过滤器链接到正确的表单。(可能是通过链接或表单名称)
答案 0 :(得分:0)
使用过滤器解决了该问题。
add_action( 'init', 'get_term_ids' );
function get_term_ids() {
global $uncategorized_id;
$u = get_term_by( 'slug', 'uncategorized', 'product_cat' );
$uncategorized_id = $u->term_id;
}
add_filter('acf/fields/taxonomy/query/name=kathgories', 'exclude_categories', 10, 2);
function exclude_categories( $args, $field ) {
global $uncategorized_id;
$args['exclude'] = array($uncategorized_id); //the IDs of the excluded terms
return $args;
}
答案 1 :(得分:0)
回答我的问题。
在上面的过滤器中,我将“排除”更改为“包含”,似乎完全可以实现我想要的功能。
它仅以表格形式显示我给它的类别。
对于那些在“选择”中显示类别的人,请使用以下代码。
add_filter('acf/fields/taxonomy/query/name=kathgories', 'include_categories', 10, 2);
function include_categories( $args, $field ) {
global $uncategorized_id;
$args['include'] = array(290,287,283,289,281,291,286,280,284,279); //the IDs of the excluded terms
return $args;
}
对于在“复选框”中显示类别的用户,请使用以下代码。
add_filter('acf/fields/taxonomy/wp_list_categories/name=kathgories', 'my_taxonomy_args', 10, 2);
function my_taxonomy_args( $args, $field ){
$args['include'] = array(197,247,245,250,246,248,249,251);//the IDs of the excluded terms
return $args;
}
也更改/name=kathgories'
与您自己的ACF分类标准字段名称。
因此,有了这一更改,我正在回答第二个问题。