media-uploader insert into post不会插入文本字段

时间:2014-10-09 16:49:09

标签: php wordpress customization

我已经为自定义徽标及其工作正常创建了一个插件,但是当我尝试将此功能添加到我现有的主题选项中时,它无效。

我有这个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]

我尝试了所有内容,而且每件事情都工作得很好,只是插入帖子中,这应该发布到这里,

enter image description here

那可能是什么问题?

1 个答案:

答案 0 :(得分:1)

这看起来很愚蠢,但是当我过去这样做时,我必须确保我插入的图像链接到“媒体文件”,因此实际上有一个返回图像的路径。所以点击“上传图片”,然后找到你想要的图片,确保它链接到“媒体文件”,然后“插入帖子”。

在我看来,更好的方法是将图像的ID存储在隐藏字段中,并显示徽标的缩略图。如果您拥有图像的ID,则可以使用图像的路径进行更多操作。

<强>更新

删除输入ID标记内的括号...

$html = '<input id="' . esc_attr( 'eo_theme_options[' . $id . ']' ) . '"

$html = '<input id="' . esc_attr( 'eo_theme_options_' . $id ) . '"