Прикрепите файлы metabox
-
16-10-2019 - |
Вопрос
Кто -нибудь узнает, как создать простую кнопку «Прикрепление/просмотр», которую можно помещать в метабокс, который при щелчке она откроет лайтбокс, где пользователь сможет просматривать все медиа -файлы, тикают те, которые он хочет Прикрепите и нажмите кнопку «Прикрепить» внизу. После нажатия «Прикрепить» пост метабокс обновил бы все выбранные он файлы ...
Решение
За часть открытия 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.