Как я могу прикрепить файл с помощью пользовательских полей / мета-полей Wordpress? - PullRequest
2 голосов
/ 02 апреля 2010

Я использую функцию Wordpress add_meta_box () для добавления настраиваемых мета-полей на страницу «Добавить новое сообщение», , например, . Я хочу, чтобы одно из этих полей позволяло пользователю загружать файл, чтобы с сообщением можно было связать одно изображение, pdf, аудиофайл или видео.

Самый близкий пример, который я видел, это (ссылка удалена *). К сожалению, он не удовлетворяет моим потребностям, так как я хочу, чтобы мой файл обрабатывался в Wordpress Media Uploader - поэтому он должен появиться в библиотеке мультимедиа впоследствии, а миниатюры должны быть сгенерированы в соответствии с настройками мультимедиа.

Я думаю, что в идеале должен быть способ подключиться к существующему диалогу Add Media в Wordpress и просто вывести URL загруженного файла в текстовое поле, но я не вижу, как это сделать. Этот вопрос похож, но ответы немного неуклюжи - я бы хотел, чтобы это было очень просто для моих конечных пользователей.

Как мне это сделать? Пожалуйста, не рекомендуйте плагины, такие как Flutter или Magic Fields - я пробовал их, и они не соответствуют моим целям (я хочу, чтобы изображения обрабатывались в Wordpress Media Uploader). Я использую Wordpress 3.0-альфа.

(* = ссылка удалена из-за сообщения о вредоносном ПО; она находится в архиве, но на свой страх и риск)

Ответы [ 5 ]

2 голосов
/ 24 июня 2011

Вам не нужно использовать JavaScript для редактирования формы. Это можно сделать с помощью функции post_edit_form_tag следующим образом:

add_action( 'post_edit_form_tag' , 'post_edit_form_tag' );

function post_edit_form_tag( ) {
    echo ' enctype="multipart/form-data"';
}

Более подробная информация (включая пример) доступна по адресу http://codex.wordpress.org/Plugin_API/Filter_Reference/post_edit_form_tag.

2 голосов
/ 10 августа 2010

В конце концов я понял это для себя, и все заработало так, как я хотел, и подумал, что выложу обновление для любого, кто найдет этот вопрос и ему интересно.

Я не использовал никаких плагинов, но написал пользовательскую функцию для обработки загрузки файлов для моей темы. Я использовал встроенные функции Wordpress, такие как save_custom_postdata (), wp_handle_upload (), wp_insert_attachment (), wp_generate_attachment_metadata () и wp_update_attachment_metadata ().

Мне также пришлось использовать add_action ('admin_head' ...), чтобы добавить JavaScript, который добавляет "multipart / form-data" к тегу формы на странице редактирования сообщения, чтобы разрешить загрузку файлов.

Я бы опубликовал свой код, но он очень длинный и специфичный для моего проекта.

1 голос
/ 02 апреля 2010

Посмотрите на Image Widget - хорошо сделанный виджет, который делает то, что вы хотите, но как виджет Возможно, вы сможете преобразовать его для работы на странице добавления нового сообщения.

Другой плагин, который вы можете попробовать - Pods CMS . Возможно, это излишне, но когда вы выполняете загрузку файлов с этим, они автоматически добавляются в библиотеку мультимедиа.

0 голосов
/ 02 августа 2010

Я думаю, это то, что вы ищете: http://wordpress.org/extend/plugins/nkmimagefield/ По-видимому, он не поддерживает пользовательские типы сообщений, но нужно немного взломать. Он уже выполняет сложную работу по взаимодействию с медиа-редактором.

0 голосов
/ 27 июня 2010

Этот WordPress Meta Box класс PHP Helper может помочь вам при работе с WordPress Meta Boxes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...