Я создаю раздел загрузки мультимедиа в своем метабоксе. Одна из вещей, которую я хочу сделать, это переименовать имя файла загружаемого носителя в то же, что и заголовок сообщения. так, например, скажем, сейчас я загрузил изображение с именем pic001.jpg в сообщение: «Тестовый пост», в процессе загрузки я хочу автоматически переименовать имя файла в test_post_1.jpg
Я видел следующую ссылку:
Переименовывать файлы во время загрузки с использованием переменных
Однако я не слишком уверен, куда бы вы разместили данные? Я также нашел другую ссылку, которая демонстрирует, как вы можете переименовать файл — это что-то похожее на это:
function make_new_filename($filename){
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
$newname = "test";
return $newname . $ext;
}
add_filter('sanitize_file_name', 'make_new_filename');
Итак, есть ли какие-либо идеи, как я могу отправить заголовок в media_upload.php?
Следовать за:
Я попытался отправить данные в media_upload.php
jQuery('#upload_image_button_test').click(function() {
var postTitleVal = jQuery("#title").val();
if(postTitleVal == ''){
jQuery("#title").after('<span class="error"> You forgot to enter the title</span>');
} else{
jQuery('html').addClass('Image');
formfield = jQuery('#upload_image_test').attr('name');
tb_show('', 'media-upload.php?type=image&TB_iframe=true;title='+postTitleVal);
console.log('media-upload.php?type=image&TB_iframe=true;title='+postTitleVal);
}
return false;
});
// user inserts file into post. only run custom if user started process using the above process
// window.send_to_editor(html) is how wp would normally handle the received data
window.original_send_to_editor = window.send_to_editor;
window.send_to_editor = function(html){
if (formfield) {
fileurl = jQuery('img',html).attr('src');
jQuery('#upload_image_test').val(fileurl);
tb_remove();
jQuery('html').removeClass('Image');
} else {
window.original_send_to_editor(html);
}
};
});
Сложно, потому что это будет работать только в том случае, если заголовок сообщения был установлен. Если вы загрузите несколько изображений до того, как установите заголовок сообщения, вы не сможете использовать заголовок в имени файла, и не рекомендуется менять имя файла позже, потому что вам также нужно будет изменить ссылки на старое имя файла. Однако, если вы введете заголовок и черновик сообщения автоматически сохранится, вы сможете получить доступ к этим данным. Хороший шанс, что он живет в глобальной
$post
переменной.Можете ли вы объяснить, чем этот вопрос отличается от вопроса, на который вы ссылались? В этом вопросе также использовался заголовок сообщения (или слаг сообщения, что почти то же самое) для формирования нового имени файла. (Используйте
@Jan
в своем комментарии, и я получу уведомление)Область комментариев ограничена по длине, но вы можете отредактировать свой собственный вопрос, включив в него дополнительный код.
@Jan Для начала я попробовал ссылку, она больше не работает. Также я не совсем уверен, куда передается post_id — передается ли он в файл плагина? или он передается в media_upload.php — снова я пробовал оба, и все равно не получаю удовольствия
Если вы имеете в виду код, который я показываю в своем вопросе, я уже знаю это. Возможно, я не совсем ясно выразился, я пытаюсь выяснить, как мне передать заголовок сообщения (которое еще не опубликовано) в media_upload.php или в приведенный выше код?
извините за мою глупость —
На вопрос можно ответить здесь — и я поменял post_id на заголовок, и это работает.
http://wordpress.org/support/topic/using-wps-thickbox-in-a-plugin
Вам нужно либо вставить этот код в файл functions.php вашей темы, либо создать плагин и вставить его туда.