1

PHP コードを使用して製品の属性を設定する必要があります。StackOverflow の他のスレッドによると、メソッドwp_set_object_termsがあります。残念ながら、私の場合は想定どおりに機能していません。

たとえば、「He​​rsteller」という名前の属性、スラッグ「hersteller」があります。また、「hersteller」属性が設定されていない ID 593 の製品があります。

属性を埋めるために次のコードを試しました:

wp_set_object_terms(593, 'Alpina', 'pa_hersteller' , false);

商品ページに属性を表示しようとしても何も出力されないので、wp_set_object_termsの処理がうまくいっていないようです。次のコードは、空の出力を生成します。

$product->get_attribute('hersteller');

さらに、属性「hersteller」は、管理バックエンド メニューの属性リストにも表示されません。

問題をデバッグするために、次のコードも試しました。

$attributes = get_post_meta( 593,  '_product_attributes' ); 
print_r($attributes);

次の出力が得られます。

Array ( [0] => Array ( [pa_marken] => Array ( [name] => pa_marken [value] => [position] => 0 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1 ) [pa_kategorien] => Array ( [name] => pa_kategorien [value] => [position] => 1 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1 ) [pa_referenznummer] => Array ( [name] => pa_referenznummer [value] => [position] => 2 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1 ) [pa_herstellergarantie] => Array ( [name] => pa_herstellergarantie [value] => [position] => 3 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1 ) [pa_schlagwoerter] => Array ( [name] => pa_schlagwoerter [value] => [position] => 4 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1 ) [pa_lieferzeit] => Array ( [name] => pa_lieferzeit [value] => [position] => 5 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1 ) ) )

wp_set_object_terms メソッドの使用は本質的に間違っていますか? もうどうしたらいいのかわからない。ここにいる誰かが私を助けることができますか?ありがとう!

4

3 に答える 3

1

次のようにコードを設定してみてください。

wp_set_object_terms(593, 'Alpina', 'pa_hersteller' , true);

そしてさらに試みる。

WordPress Codex の機能によると

<?php wp_set_object_terms( $object_id, $terms, $taxonomy, $append ); ?>

$append (ブール値) (オプション) true の場合、タグがオブジェクトに追加されます。false の場合、タグは既存のタグを置き換えます (デフォルト: False)

$append を true に変更すると、動作する可能性があります =)

于 2015-10-05T21:13:44.780 に答える