“SEND_TO_EDITOR”函数返回pdf文件名

时间:2016-12-31 作者:Dustin

我正在使用媒体上传程序为自定义帖子类型选择一个文件url。我需要的html参数send_to_editor 是包含文件的字符串html标记url 作为srchref. 这适用于大多数文件类型,但不适用于pdf 文件。对于PDF,参数只是没有标记的文件名。有什么想法吗?

var formfield;

function extractUri(text) {
    var uri_pattern = /\\b((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\'".,<>?«»“”‘’]))/ig;

    return text.match(uri_pattern)[0];
}

// Open upload window
$(\'#upload-file-button\').click(function() {
    formfield = $(\'#upload_file\').attr(\'name\');
    tb_show( \'\',\'media-upload.php?type=file&TB_iframe=true\' );
    return false;
});

window.original_send_to_editor = window.send_to_editor;

//html param for img -> <img src="FILE_URL" >
//html param for pdf -> "FILE_NAME"
window.send_to_editor = function(html) {
     var uri = extractUri(html);
     if (formfield) {
        $(\'#upload_file\').val(uri);
        tb_remove();
     } else {
        window.original_send_to_editor(uri);
        tb_remove();
     }
 };

1 个回复
SO网友:Dustin

找到了适用于此情况的筛选器

function media_to_editor($html, $send_id, $attachment ){
   $attachment_url = wp_get_attachment_url($send_id);
   return $attachment_url;
}

add_filter(\'media_send_to_editor\', \'media_to_editor\', 10, 2);