Создание метабокса для загрузки нескольких изображений


Можно ли создать мета-поле, которое прикрепляет несколько изображений к сообщению?

 8
Author: agileapricot, 2011-01-12

4 answers

Это полностью зависит от того, что вы подразумеваете под "присоединением".

Каждый пост WordPress уже может содержать несколько мультимедийных вложений - фотографии, документы и т.д. Вы загружаете их с помощью встроенного загрузчика, и все они будут помечены как "прикрепленные" к этому конкретному идентификатору записи.

Вы можете обратиться к ним позже программно в другом месте. Например, в следующем коде будут перечислены все вложения для определенного сообщения (код из Snipplr):

$args = array(
    'post_type' => 'attachment',
    'numberposts' => null,
    'post_status' => null,
    'post_parent' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
    foreach ($attachments as $attachment) {
        echo apply_filters('the_title', $attachment->post_title);
        the_attachment_link($attachment->ID, false);
    }
}

Все это функциональность доступна с помощью кнопки "Добавить медиа" по умолчанию, расположенной справа от "Загрузить/Вставить" на экране новой публикации. После добавления одного изображения вы можете снова нажать "Выбрать файлы" и загрузить второе изображение. Затем третий. Затем четвертый. Столько, сколько ты захочешь.

Каждое из этих изображений будет "прикреплено" к сообщению... даже если они не вставлены в контент.

 7
Author: EAMann, 2011-01-12 17:28:14

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

Http://www.deluxeblogtips.com/2010/05/howto-meta-box-wordpress.html

 6
Author: Philip, 2011-01-12 21:03:06

Я бы также рекомендовал проверить http://www.wpalchemy.com . WPAlchemy - это классный "класс" (близкий к плагину), позволяющий легко добавлять пользовательские мета-поля на ваш сайт. Я широко использую его и был впечатлен простотой использования и приверженностью разработчика и растущего сообщества.

 2
Author: internetross, 2011-01-12 21:35:22

Да, это вполне возможно. Смотрите ответ Я получил около метабоксов. В принципе, вам просто нужно добавить крючок для save_post и проверить поле nonce.

function my_save_post_callback( $post_id, $post )
{
    if ( empty($_POST) || !isset($_POST['my_custom_metabox']) || !wp_verify_nonce( $_POST['my_custom_metabox'], plugin_basename( __FILE__ ) ) )
    {
        return $post->ID;
    }

    // Handle the upload here

}
add_action( 'save_post', 'my_save_post_callback', 1, 2);
 0
Author: Zack, 2017-04-13 12:37:50