私はWordPressのインストールで製品(サブ)カテゴリを作成しようとしています。 (サブ)カテゴリ部分はまったく問題ありませんが、サムネイル画像を特定のカテゴリに追加する方法を見つけることができないようです。
wp-admin
では、入力したいフィールドに添付ファイルIDが要求されるので、特定の投稿に接続せずに、画像を添付ファイルとしてアップロードしてみました。次にカテゴリを作成し、wp_insert_term()
関数内でフィールド名product_cat_thumbnail_id
とthumbnail_id
を試して、それらに添付ファイルIDを入力しました。アップロード後にwp-admin
がJavaScriptで埋めて、カテゴリを作成するときにすべて保存することを除けば、wp-admin
関数とまったく同じです。
私が間違ったことをしているのか、明らかな何かが欠けているのか、それともあなたが記入を許可されていないのは単にある種の保護されたフィールドであるのかどうかわからない。
何か案は?
これにより私自身の投稿に対する私の回答。私はこれが他の人にも役立つことを願っています!
カテゴリを作成するために、関数wp_insert_term
に必要なカテゴリごとのデータを含む配列を使いました。
それから私はその配列をたどり、その関数に与えられたimage-pathで見つけられた画像をアップロードし、そして添付ファイルIDを返すfetch_media
関数を使いました。
それから、返された配列出力からwp_insert_term
値を取得できるように、$cid
関数を呼び出します。これはterm_id
として設定します。
返された$cid['term_id']
と$thumb_id
関数から取得したfetch_media
を使って、update_woocommerce_term_meta
関数を使用し、アップロードされた添付ファイルで私のサムネイルを更新することができます。
私が使っている基本的なfetch_media
関数はここにあります。
http://nlb-creations.com/2012/09/26/how-to-programically-import-media-files-to-wordpress/
明らかに、私の用語(カテゴリ)は投稿ではないので、私はそれを変更してpost_idが必要とされないようにしました。
$cats = array(
array('thumb' => 'images/uploads/cat09.png','name' => 'Cat 9','description' => 'Cat 9 description','slug' => 'cat-9','parent' => 8),
array('thumb' => 'images/uploads/cat10.png','name' => 'Cat 10','description' => 'Cat 10 description','slug' => 'cat-10','parent' => 8),
array('thumb' => 'images/uploads/cat11.png','name' => 'Cat 11','description' => 'Cat 11 description','slug' => 'cat-11','parent' => 8),
);
foreach($cats as $data) {
$thumb_id = fetch_media($data['thumb']);
$cid = wp_insert_term(
$data['name'], // the term
'product_cat', // the taxonomy
array(
'description'=> $data['description'],
'slug' => $data['slug'],
'parent' => $data['parent']
)
);
$cat_id = isset( $cid['term_id'] ) ? $cid['term_id'] : 0;
update_woocommerce_term_meta( $cid['term_id'], 'thumbnail_id', absint( $thumb_id ) );
}