我已经为自定义徽标及其工作正常创建了一个插件,但是当我尝试将此功能添加到我现有的主题选项中时,它无效。
我有这个js代码。
jQuery(document).ready(function() {
jQuery('#upload_logo_button').click(function() {
formfield = jQuery('#eo_theme_options[logo]').attr('name');
tb_show('', 'media-upload.php?type=image&TB_iframe=true');
return false;
});
window.send_to_editor = function(html) {
imgurl = jQuery('img',html).attr('src');
jQuery('#eo_theme_options[logo]').val(imgurl);
tb_remove();
}
});
这是html结构,
<div class="grid col-620 fit">
<input id="eo_theme_options[logo]" class="regular-text" type="text" name="eo_theme_options[logo]" value="" placeholder="Custom Theme Logo"> <input id="upload_logo_button" type="button" value="Upload Image" class="button-secondary">
<label class="description" for="eo_theme_options[logo]">Enter your logo URL here.</label></div>
这是生成html的PHP代码,
protected function text( $args ) {
extract( $args );
$value = ( !empty( $this->eo_options[$id] ) ) ? ( $this->eo_options[$id] ) : '';
$upload = (!empty($options)) ? '<input id="upload_logo_button" type="button" value="'.esc_attr($options).'" class="button-secondary"/>' : '';
$html = '<input id="' . esc_attr( 'eo_theme_options[' . $id . ']' ) . '" class="regular-text" type="text" name="' . esc_attr( 'eo_theme_options[' . $id . ']' ) . '" value="'. esc_html( $value ) . '"
placeholder="' . esc_attr( $placeholder ) . '" /> '.$upload.'
<label class="description" for="' . esc_attr( 'eo_theme_options[' . $id . ']' ) . '">' . esc_html( $description ) . '</label>';
return $html;
}
我的媒体上传器正常工作,但没有插入文本字段name=eo_theme_options[logo]
我尝试了所有内容,而且每件事情都工作得很好,只是插入帖子中,这应该发布到这里,
那可能是什么问题?
答案 0 :(得分:1)
这看起来很愚蠢,但是当我过去这样做时,我必须确保我插入的图像链接到“媒体文件”,因此实际上有一个返回图像的路径。所以点击“上传图片”,然后找到你想要的图片,确保它链接到“媒体文件”,然后“插入帖子”。
在我看来,更好的方法是将图像的ID存储在隐藏字段中,并显示徽标的缩略图。如果您拥有图像的ID,则可以使用图像的路径进行更多操作。
<强>更新强>
删除输入ID标记内的括号...
$html = '<input id="' . esc_attr( 'eo_theme_options[' . $id . ']' ) . '"
到
$html = '<input id="' . esc_attr( 'eo_theme_options_' . $id ) . '"