我可以通过以下方法来解决这个问题:
color
和
shape
function acf_update_term_meta( $value, $post_id, $field ) {
$term_id = (int) filter_var( $post_id, FILTER_SANITIZE_NUMBER_INT );
if ( $term_id > 0 ) {
update_term_meta( $term_id, $field['name'], $value );
}
return $value;
}
add_filter( 'acf/update_value/name=color', 'acf_update_term_meta', 10, 3 );
add_filter( 'acf/update_value/name=shape', 'acf_update_term_meta', 10, 3 );
function acf_load_term_meta( $value, $post_id, $field ) {
$term_id = (int) filter_var( $post_id, FILTER_SANITIZE_NUMBER_INT );
if ( $term_id > 0 ) {
$value = get_term_meta( $term_id, $field['name'], true );
}
return $value;
}
add_filter( 'acf/load_value/name=color', 'acf_load_term_meta', 10, 3 );
add_filter( 'acf/load_value/name=shape', 'acf_load_term_meta', 10, 3 );
所以我们有:
-
用于更新
term_meta
update_term_meta()
(
codex
)更新此ACF字段时(挂接2次,一次用于
一个是为了
形状
)
-
术语
使用价值
get_term_meta()
(
codex
wp_option
(钩住2次,一次为
颜色
一个是为了
形状
)
source
注1
这将触发所有具有
或
自定义字段。如果不希望分类法始终应用于那些字段的情况,则可能需要按分类法进行筛选。
注2
ACF5
似乎支持开箱即用
术语
升级过程似乎包含此特定情况下的重构方法(来自
wp_options
term_metas
):
更新到ACF 5后,系统将提示您升级数据库。
版本4.x中的设置。此升级还将在所有
从“wp_options”表到“wp_termmeta”的分类术语值
在此升级过程中没有删除或修改任何数据。(
source
)
注3