我在WordPress网站上使用Advanced Custom Fields plugin。我的目标是有一个自定义位置规则,以便在选择自定义分类中的任何术语时显示自定义归档组。
在ACF网站上custom location rule tutorial之后,我已将自定义类型,运算符和值添加到规则行。
我的匹配功能(下面的代码)仅在重新加载页面时有效,但不能通过AJAX。如何在$ options数组中添加自定义分类,以便匹配函数可以在选中/取消选中自定义分类术语时通过AJAX进行评估。
function acf_location_rules_match_taxonomyTerm( $match, $rule, $options ){
// vars
$taxonomies = get_object_taxonomies( $options['post_type'] );
$terms = $options['taxonomy'];
// not AJAX
if( !$options['ajax'] ){
// no terms? Load them from the post_id
if( empty($terms) ){
if( is_array($taxonomies) ){
foreach( $taxonomies as $tax ){
$all_terms = get_the_terms( $options['post_id'], $tax );
if($all_terms){
foreach($all_terms as $all_term){
$terms[] = $all_term->term_id;
}
}
}
}
}
if($rule['operator'] == "<==>"){
$match = false;
if($terms){
$current_terms = get_the_terms($options['post_id'], $rule['value']);
if ( $current_terms && ! is_wp_error( $terms ) ) {
$current_term_ids = array();
foreach ($current_terms as $current_term) {
$current_term_ids[] = $current_term->term_id;
}
}
foreach ($current_term_ids as $current_term_id) {
if( in_array($current_term_id, $terms) ){
$match = true;
}
}
}
}
else{
$match = false;
}
}
return $match;
}
答案 0 :(得分:1)
您是否尝试使用此插件?可能有帮助。虽然有点晚了。 :)
https://wordpress.org/plugins/advanced-custom-fields-meta-location-rule/