質問: woocommerceの属性用語にカスタムフィールドを追加することは可能ですか? wordpress / woocommerceでは、woocommerce属性にカスタムフィールドを追加することは可能ですか?「属性」とは、商品の属性ではなく、一般的な属性を意味します。詳細については、以下の画像を確認してください。 acf(advanced custom fields)プラグインでそれを行うことは可能ですか?ありがとうございます。
回答: はい、可能です。そして、簡単なガイドがあります こちら 。以下は、テーマのメインfunctions.phpファイルに追加できる作業コードです。// adds a custom rule type. add_filter( 'acf/location/rule_types', function( $choices ){ $choices[ __("other",'acf') ]['wc_prod_attr'] = 'wc product attribute'; return $choices; } ); // adds custom rule values. add_filter( 'acf/location/rule_values/wc_prod_attr', function( $choices ){ foreach ( wc_get_attribute_taxonomies() as $attr ) { $pa_name = wc_attribute_taxonomy_name( $attr->attribute_name ); $choices[ $pa_name ] = $attr->attribute_label; } return $choices; } ); // matching the custom rule. add_filter( 'acf/location/rule_match/wc_prod_attr', function( $match, $rule, $options ){ if ( isset( $options['taxonomy'] ) ) { if ( '==' === $rule['operator'] ) { $match = $rule['value'] === $options['taxonomy']; } elseif ( '!=' === $rule['operator'] ) { $match = $rule['value'] !== $options['taxonomy']; } } return $match; }, 10, 3 ); acfの[フィールドグループの作成/編集]画面で次のように表示されます。 2018年9月25日更新(utc)用語編集ページのルールに一致する関数で、$options['ef_taxonomy']が$options['taxonomy']に変更されました—当時、配列キーtaxonomyは存在しませんでした(私の場合)。そしてそれは現在存在し、ef_taxonomyキーを置き換えると思います。 @ jordancarter 主要な問題に気づいてくれてありがとう。 @ vadimh 最初の回答の編集に感謝。 =)その関数では、phpの「未定義」の通知を避けるためにif ( isset( $options['taxonomy'] ) )チェックも追加しました。これに気づいてくれた@jordancarterに感謝します。@vadimh、get_field( '{name}', 'term_{term id}' )を使用して、次のようにフィールドの値を取得(および表示)できます。$term_id = 123; $value = get_field( 'my_field', 'term_' . $term_id ); get_field()の公式 ドキュメント の「異なるオブジェクトから値を取得する」セクションを参照してください。ps:コード全体(get_field()だけでなく)は、acf 5.7.6およびacf pro 5.7.3でwoocommerce 3.4.5を使用して最後に試行およびテストされました。