php ACF关系字段的双向功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php ACF关系字段的双向功能相关的知识,希望对你有一定的参考价值。

<?php
/* ========================================================================= */
/* !BIDIRECTIONAL RELATIONSHIP */
/* ========================================================================= */
function bidirectional_acf_update_value( $value, $post_id, $field  ) {
	// vars
	$field_name = $field['name'];
	$global_name = 'is_updating_' . $field_name;
	if( !empty($GLOBALS[ $global_name ]) ) return $value;
	$GLOBALS[ $global_name ] = 1;
	if( is_array($value) ) {
		foreach( $value as $post_id2 ) {
			$value2 = get_field($field_name, $post_id2, false);
			if( empty($value2) ) {
				$value2 = array();
			}
			if( in_array($post_id, $value2) ) continue;
			$value2[] = $post_id;
			update_field($field_name, $value2, $post_id2);
		}
	}
	$old_value = get_field($field_name, $post_id, false);
	if( is_array($old_value) ) {
		foreach( $old_value as $post_id2 ) {
			if( is_array($value) && in_array($post_id2, $value) ) continue;
			$value2 = get_field($field_name, $post_id2, false);
			if( empty($value2) ) continue;
			$pos = array_search($post_id, $value2);
			unset( $value2[ $pos] );
			update_field($field_name, $value2, $post_id2);
		}
	}
	$GLOBALS[ $global_name ] = 0;
    return $value;
}
add_filter('acf/update_value/name=YOUR_FIELD_NAME_HERE', 'bidirectional_acf_update_value', 10, 3);

以上是关于php ACF关系字段的双向功能的主要内容,如果未能解决你的问题,请参考以下文章

每页 ACF 关系字段帖子

Wordpress ACF php 关系

如何在 GraphQL 中访问 ACF 关系字段中的自定义字段?

php PHP - Wordpress - 搜索 - wordpress自定义搜索功能,包含ACF /高级自定义字段和分类法以及拆分表达式

php PHP - Wordpress - 搜索 - wordpress自定义搜索功能,包含ACF /高级自定义字段和分类法以及拆分表达式

php PHP - Wordpress - 搜索 - wordpress自定义搜索功能,包含ACF /高级自定义字段和分类法以及拆分表达式