logo помогаю бизнесу зарабатывать больше.
Связаться
Введите название услуги:

Image Gallery Metabox

15 февраля 2022 в 16:23 Блог веб-разработчика

Этот плагин добавляет интуитивно понятное мета-окно галереи изображений на экран редактора страниц.

Скачать можно здесь.

Описание

Этот плагин добавляет интуитивно понятное мета-окно галереи изображений на экран редактора страниц. Разработанный для разработчиков тем, он выводит массив идентификаторов вложений, которые можно использовать для управления галереями и слайдерами во внешнем интерфейсе.

Показать варианты

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

В приведенном ниже примере показано, как вы можете реализовать этот фильтр в своей теме (значения, показанные ниже, являются значениями фильтра по умолчанию):

add_filter( 'igmb_display_meta_box', 'myprefix_display_gallery_meta_box' );
/**
 * Filter to add the image gallery meta box to specific screens.
 *
 * @param   array   An array containing default values.
 * @return  array   An array containing new values.
 */
function myprefix_display_gallery_meta_box( $display ) {

    $display = array(
        'title'          => __( 'Image Gallery', 'my-text-domain' ), // meta box title
        'post_type'      => array( 'page' ), // array of post type slugs
        'post_id'        => array(), // array of post IDs (any post type)
        'page_template'  => array(), // array of page template file names
        'page_on_front'  => false, // display on front page (true or false)
        'page_for_posts' => false, // display on posts page (true or false)
        'priority'       => 'high', // meta box priority
    );

    return $display;

}

Вы можете переопределить все параметры сразу или включить в фильтр только те, которые хотите переопределить. В следующем примере метаполе будет отображаться только на странице, назначенной главной страницей в разделе «Настройки» > «Чтение»:

add_filter( 'igmb_display_meta_box', 'myprefix_display_gallery_meta_box' );
/**
 * Filter to add the image gallery meta box to specific screens.
 *
 * @param   array   An array containing default values.
 * @return  array   An array containing new values.
 */
function myprefix_display_gallery_meta_box( $display ) {

    $display = array(
        'page_on_front' => true,
    );

    return $display;

}

Интерфейсное использование

Чтобы получить идентификаторы вложений галереи, используйте get_post_metaследующее:

$images = get_post_meta( $post_id, '_igmb_image_gallery_id', true );

Затем вы можете просмотреть каждый идентификатор и использовать wp_get_attachment_linkили wp_get_attachment_imageдля отображения изображений. Однако более гибкий вариант предполагает использование wp_prepare_attachment_for_jsфункции, которая возвращает массив объекта поста вложения, который можно использовать для извлечения определенной информации для каждого изображения.

В следующем примере показано, как отобразить базовый список изображений с использованием данных, извлеченных из wp_prepare_attachment_for_jsмассива внутри файла шаблона темы:

<?php

// Attachment IDs
$images = get_post_meta( get_the_ID(), '_igmb_image_gallery_id', true );

// Display attachments
if ( $images ) {
    ?>
    <div class="attachment-images">
        <?php
        foreach( $images as $image ) {

            // Get attachment details
            $attachment = wp_prepare_attachment_for_js( $image );
            
            ?>
            <div>
                <a href="<?php echo $attachment['link']; ?>">
                    <img src="<?php echo $attachment['sizes']['medium']['url']; ?>" alt="<?php echo $attachment['alt']; ?>" />
                </a>
                <p><?php echo $attachment['caption']; ?></p>
            </div>
            <?php
        }
        ?>
    </div>
    <?php
}

Обратите внимание , что новые размеры изображений, добавленные через add_image_size, не будут автоматически доступны для использования wp_prepare_attachment_for_js. Вам нужно будет добавить новые размеры изображения с помощью image_size_names_chooseфильтра. Следующая функция иллюстрирует, как добавить это в вашу тему.

add_filter( 'image_size_names_choose', 'myprefix_custom_image_sizes' );
/**
 * Add new image sizes to list of default image sizes so
 * wp_prepare_attachment_for_js() can access them.
 *
 * @param   array   An array containing default image sizes and their names.
 * @return  array   Merged array containing new image sizes and their names.
 */
function myprefix_custom_image_sizes( $size_names ) {

    // Add new image sizes to array
    $new_size_names = array(
        'featured-image'    => __( 'Featured Image', 'my-text-domain' ),
        'portfolio-archive' => __( 'Portfolio Archive', 'my-text-domain' ),
    );

    // Combine the two arrays
    $size_names = array_merge( $new_size_names, $size_names );

    return $size_names;

}

Кроме того, в этом примере показано, как создать галерею, используя встроенный шорткод галереи WordPress:

<?php

// Attachment IDs
$images = get_post_meta( get_the_ID(), '_igmb_image_gallery_id', true );

$wp_gallery = '';

echo do_shortcode( $wp_gallery );

Для получения дополнительной информации, пожалуйста, обратитесь к следующим страницам:

Установка

Использование панели инструментов WordPress

  1. Перейдите на панель управления плагинами «Добавить новый».
  2. Нажмите «Загрузить плагин» и выберите image-gallery-metabox.zipсо своего компьютера .
  3. Нажмите «Установить сейчас»
  4. Активируйте плагин на панели плагинов WordPress.

Использование FTP

  1. Извлечь image-gallery-metabox.zipна свой компьютер
  2. Загрузите image-gallery-metaboxкаталог в свой wp-content/pluginsкаталог
  3. Активируйте плагин на панели плагинов WordPress.

Скриншоты

Метабокс галереи изображений Метабокс галереи изображений

Список изменений

1.1.0

  • Включите выбор видеофайла в мета-окне.
  • Исправлена ​​ошибка быстрого редактирования, из-за которой все выбранные медиаданные удалялись из метабокса при сохранении.

1.0.1

  • Обновлен CSS администратора для лучшей интеграции с редактором Gutenberg.

1.0.0

  • Начальная версия.

Похожие статьи

Оставить заявку
По любым вопросам пишите мне в мессенджеры .
Написать в WhatsApp
+7 (925) 444-48-89
Написать в Telegram
@max_webs
Ваша цена
Предложите свою цена за товар или услугу. Пишите мне в мессенджеры или оставьте заявку в данной форме.
Написать в WhatsApp
+7 (925) 444-48-89
Написать в Telegram
@max_webs
[contact-form-7 id="22192" title="Универсальная форма"]
[contact-form-7 id="114828" title="Рассчитать стоимость"]

Представительство Max-Webs в других городах:

There are no products