0
我向我的自定義帖子類型分類添加了上傳圖片。帖子類型爲portfolio
,分類爲portfolio-category
。在自定義帖子類型分類中保存新字段
輸入欄和添加圖像(打開wordpress上傳器)的作品。不過,由於我基本上從我的類別(普通職位)複製了這些,所以有些選項不能保存。我已經添加了我的表單字段是這樣的:
//Category image
if (! function_exists('mytheme_image_category_field')){
function mytheme_image_category_field($tag) {
$t_id = $tag->term_id;
$cat_meta = get_option("category_$t_id");
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="extra1"><?php esc_attr_e('Featured Image', 'mytheme'); ?></label></th>
<?php print_r($cat_meta, true); ?>
<td>
<div class="portfolio_category_image">
<?php if(isset($cat_meta['taxonomy_portfolio_category_image']) && $cat_meta['taxonomy_portfolio_category_image']!=''): ?>
<img width="254" src="<?php echo esc_url($cat_meta['taxonomy_portfolio_category_image']);?>" />
<?php endif; ?>
</div>
<input type="text" class="portfolio_category_image_upload" name="Cat_meta[taxonomy_portfolio_category_image]" value="<?php (isset($cat_meta['taxonomy_portfolio_category_image']) && $cat_meta['taxonomy_portfolio_category_image']!='') ? esc_attr_e($cat_meta['taxonomy_portfolio_category_image']) : '' ;?>">
<input type="button" class="button portfolio_upload_image_button" name="image_upload" value=" <?php esc_attr_e('Upload Image', 'mytheme');?>">
<input type="button" class="button portfolio_remove_image_button" name="remove_image_upload" value=" <?php esc_attr_e('Remove Image', 'mytheme');?>">
</td>
</tr>
<?php
}
}
add_action ('portfolio-category_edit_form_fields', 'mytheme_image_category_field');
if (! function_exists('mytheme_extra_add_image_upload_field')){
function mytheme_extra_add_image_upload_field($tag) {
$t_id = (is_object($tag)) ? $tag->term_id:'';
$cat_meta = get_option("category_$t_id");
?>
<div class="form-field">
<label for="extra1"><?php esc_attr_e('Featured Image', 'mytheme'); ?></label>
<input type="text" class="portfolio_category_image_upload" name="Cat_meta[taxonomy_portfolio_category_image]" value="<?php echo (isset($cat_meta['taxonomy_portfolio_category_image']) && $cat_meta['taxonomy_portfolio_category_image'] != '') ? esc_attr($cat_meta['taxonomy_portfolio_category_image']) : '' ;?>">
<input type="button" class="button portfolio_upload_image_button" name="Cat_meta[taxonomy_portfolio_category_image]" value=" <?php esc_attr_e('Upload Image', 'mytheme');?>">
<input type="button" class="button portfolio_remove_image_button" name="remove_image_upload" value=" <?php esc_attr_e('Remove Image', 'mytheme');?>">
</div>
<?php
}
}
add_action ('portfolio-category_add_form_fields', 'mytheme_extra_add_image_upload_field');
清晰的問題是,在自定義的文章類型,我不wp_options
表寫任何東西所以$cat_meta = get_option("category_$t_id");
不會得到任何東西。
當我回顯$t_id
時我得到的是我的術語ID。所以我知道我需要以某種方式使用terms
來保存我的選項。但這裏是我卡住的地方。 get_terms('portfolio-category')
會正確輸出我擁有的每個術語,但是我沒有上傳的圖像。
的JavaScript是(如果有人需要對其進行測試):
$(document).on('click', '.portfolio_upload_image_button', portfolio_upload_image_button);
function portfolio_upload_image_button(e) {
e.preventDefault();
var $input_field = $(this).prev();
var $image = $('.portfolio_category_image');
var custom_uploader = wp.media.frames.file_frame = wp.media({
title: 'Add Image',
button: {
text: 'Add Image'
},
multiple: false
});
custom_uploader.on('select', function() {
var attachment = custom_uploader.state().get('selection').first().toJSON();
$input_field.val(attachment.url);
$image.html('<img width="254" src="'+attachment.url+'" />');
});
custom_uploader.open();
}
$(document).on('click', '.portfolio_remove_image_button', portfolio_remove_image_button);
function portfolio_remove_image_button(e){
e.preventDefault();
var $input_field = $('.portfolio_category_image_upload');
var $image = $('.portfolio_category_image');
$input_field.val('');
$image.html('');
}
這適用於我的正式職位,但不會對我的CPT。
編輯
我應該使用wp_insert_term?要更新我的分類術語?