Вопрос

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

Это было полезно?

Решение

За часть открытия Lightbox, просмотрите что -то, а затем выполняя что -то в действии внутри: WordPress имеет это уже встроенное. Для того, что вы спрашиваете, в основном толстые ящики, которые открываются, как в редакторе Post, когда вы просматриваете изображение в Галерея.

Вы уже найдете весь код, который вам нужен для этого в WordPress. Единственное, что вам нужно сделать, это собрать более сложную кусок кода, упаковать его в плагин сам по себе и изменить его в соответствии с вашими потребностями. Эти компоненты сами по себе не очень используются, поэтому нет API, который мог бы облегчить вам это. Ну, это не совсем так, вы можете использовать tb_show() Чтобы отобразить толстую коробку для пример.

Но в целом, это не тривиально. Вы, вероятно, ищете что -то, что легче принять. Я не знаю. Однажды я возился с сообщением hulatbox <--> post Editor (что может быть более сложным с тем, что вам нужно), и есть что подумать, чтобы сделать что-то. Но для сценария, который вы описываете, часто необходимо сигнализировать на страницу, которая открывает толстую коробку, чтобы что -то обновить после того, как выбор во всплывающем окне был сделан.

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

Другие советы

Может быть, что -то здесь поможет ..

http://austinpassy.com/2010/03/creating-custom-metaboxes-and-the-built-in-uploader/

https://github.com/jaredatch/custom-metaboxes-and-fields-forwordpress

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

Это позволяет ометировать метабоксы для любого программы Post Type с помощью тонкого контроля.

Был запрос на более подробную информацию. По риску дублирования знаний, вот пример из документации (с некоторыми модами для использования элемента управления файлами). Metabox изображения:

function be_sample_metaboxes( $meta_boxes ) {
$prefix = '_cmb_'; // Prefix for all fields
$meta_boxes[] = array(
    'id' => 'test_metabox',
    'title' => 'Test Metabox',
    'pages' => array('page'), // post type
    'context' => 'normal',
    'priority' => 'high',
    'show_names' => true, // Show field names on the left
    'fields' => array(
        array(
            'name' => 'Test Text',
            'desc' => 'field description (optional)',
            'id' => $prefix . 'test_image',
            'type' => 'file'
        ),
    ),
);

return $meta_boxes;
}
add_filter( 'cmb_meta_boxes', 'be_sample_metaboxes' );


add_action( 'init', 'be_initialize_cmb_meta_boxes', 9999 );
function be_initialize_cmb_meta_boxes() {
if ( !class_exists( 'cmb_Meta_Box' ) ) {
    require_once( 'lib/metabox/init.php' );
}
}

То, что я делаю, это помещаю это в свой posttype_my_post_type_name.php, где я создаю тип поста. Требовать этого из файла functions.php после того, как вы потребовали библиотеку Metabox.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top