我已经为自定义徽标创建了一个插件,它运行良好,但当我试图将此功能添加到现有主题选项中时,它不起作用。
我有这个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;
}
我的media up loader工作正常,但未插入文本字段
name=eo_theme_options[logo]
我什么都试过了,每件事都很好,只是插入了应该发布到这个帖子中的帖子,
那会是什么问题呢?
最合适的回答,由SO网友:Mr.beginner 整理而成
我已经找到了解决方法
更改此
$html = \'<input id="\' . esc_attr( \'eo_theme_options[\' . $id . \']\' ) . \'"
到这个
$html = \'<input id="\' . esc_attr( \'eo_theme_options_\' . $id ) . \'"
它起作用了