Для создания нескольких метабоксов в WordPress вы можете использовать следующий подход:
1. Добавьте соответствующий PHP-код в файл `functions.php` вашей темы, либо создайте плагин. Ниже пример кода для добавления одного метабокса:
```php
add_action('add_meta_boxes', 'my_custom_meta_boxes');
function my_custom_meta_boxes() {
add_meta_box(
'my_custom_meta_box_1', // ID of the metabox
'Мой Кастомный Метабокс 1', // Title of the metabox
'my_custom_meta_box_callback_1', // Callback function
'post', // Post type
'normal', // Context (where to display)
'default' // Priority
);
// Для добавления второго метабокса просто повторите add_meta_box() с другими параметрами.
add_meta_box(
'my_custom_meta_box_2', // ID of the metabox
'Мой Кастомный Метабокс 2', // Title of the metabox
'my_custom_meta_box_callback_2', // Callback function
'post', // Post type
'side', // Context (where to display)
'default' // Priority
);
}
// Колбэк для первого метабокса
function my_custom_meta_box_callback_1($post) {
// здесь ваш HTML код или вызов функции вывода содержимого для первого метабокса
}
// Колбэк для второго метабокса
function my_custom_meta_box_callback_2($post) {
// здесь ваш HTML код или вызов функции вывода содержимого для второго метабокса
}
```
2. Для каждого метабокса создайте каллбэк функцию, которая будет отвечать за вывод содержимого (в данном случае - галереи).
3. Для реализации функциональности галерей вам потребуется использовать JavaScript и/или jQuery, чтобы внедрить возможность загрузки и выбора изображений через встроенные в WordPress медиа-функции.
Далее необходимо обеспечить сохранение данных при сохранении поста, добавив хук `save_post`:
```php
add_action('save_post', 'my_custom_save_post');
function my_custom_save_post($post_id) {
// Проверяем, что это не автосохранение
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return;
// Проверяем nonce, если нужно
// Проверяем права пользователя
// Сохраняем данные из метабоксов
if(isset($_POST['my_custom_field_1'])) {
update_post_meta($post_id, 'my_custom_field_1', $_POST['my_custom_field_1']);
}
if(isset($_POST['my_custom_field_2'])) {
update_post_meta($post_id, 'my_custom_field_2', $_POST['my_custom_field_2']);
}
// Повторите шаги для дополнительных полей
}
```
Этот код — всего лишь отправная точка для создания метабоксов. Чтобы в них вставить галереи, вам понадобится более сложный JavaScript, который взаимодействут со стандартной медиа-библиотекой WordPress, и вам нужно будет корректно обработать сохранение прикрепленных изображений.
Если вам не комфортно работать с кодом напрямую, вы также можете использовать плагины для создания метабоксов, например, Advanced Custom Fields (ACF), CMB2 или Meta Box, которые предоставляют более удобный интерфейс для добавления и управления кастомными полями, в том числе гал