Удалите подписи из функции пользовательской галереи в файл function.php

Вопрос или проблема

Мне нравится предотвращать вывод подписей в моей пользовательской функции галереи. Я мог бы просто скрыть их с помощью CSS, но это не кажется правильным.

Подпись передается из media.php вот в этой строке.

        if ( $captiontag && trim($attachment->post_excerpt) ) {
        $output .= "
            <{$captiontag} class="wp-caption-text gallery-caption">
            " . wptexturize($attachment->post_excerpt) . "
            </{$captiontag}>";
    }

Я мог бы просто удалить . wptexturize($attachment->post_excerpt) ., но как только я обновлю, это исчезнет. Я хотел бы сделать это без копирования всей функции галереи.

WordPress генерирует alt тег, используя поле подписи, что является желаемым.

Есть ли способ?

Мой код функции

function modified_gallery_shortcode( $attr ) {

$attr['size']   = "thumbnail";
$attr['link']   = "file";
$attr['itemtag']  = "";
$attr['icontag']  = "";
$attr['captiontag'] = "";
$output = gallery_shortcode( $attr );
$output = strip_tags( $output, '<a><img><li><p>' );
$from = array(  
        "class="gallery-item"", 
        "class="gallery-icon landscape"", 
        "a href="https://wordpress.stackexchange.com/questions/156633/,"class="wp-caption-text gallery-caption""
    );      
$to = array( 
      "",
      "",
      "a class=\"swipebox\" rel=\"group\" href=",
      "",
);
$output = str_replace( $from, $to, $output );
$output = sprintf( '<div class="gallery">%s</div>', $output );
return $output;
}

add_shortcode( 'gallery', 'modified_gallery_shortcode' );

если ты можешь сделать это простым способом, то почему бы и нет?

ты можешь использовать jquery для этого, например:

( function( $ ) {    
    function function_name() {
          $( '.gallery-caption').css({display:'none'});
}

function_name();
} )( jQuery );

Ответ или решение

Чтобы убрать подписи из вашего пользовательского шорткода галереи в WordPress и сделать это правильно, вам нужно вмешаться в работу функции, отвечающей за вывод галереи, однако без прямого редактирования файлов ядра или установки стилей CSS для скрытия. Это позволит сохранить готовность к отключению и обновлению, не теряя внесённые вами изменения.

Решение через пользовательский шорткод

В WordPress по умолчанию используется функция gallery_shortcode, которая отвечает за вывод галерей. Чтобы удалить подписи из галереи, можно воспользоваться параметром captiontag, передавая ему пустое значение.

Вот детальный пример того, как это сделать:

function modified_gallery_shortcode( $attr ) {
    // Установка параметров галереи
    $attr['size']      = "thumbnail";
    $attr['link']      = "file";
    $attr['itemtag']   = "div";
    $attr['icontag']   = "div";
    $attr['captiontag'] = ""; // Устанавливаем пустой тег для подписи

    // Генерация HTML для галереи
    $output = gallery_shortcode( $attr );

    // Удаление ненужных тегов и классов
    $output = strip_tags( $output, '<a><img><div><p>' );

    // Замена классов, если нужно
    $from = array(
        'class="gallery-item"',
        'class="gallery-icon landscape"',
    );
    $to = array(
        '',
        '',
    );

    $output = str_replace( $from, $to, $output );
    $output = sprintf('<div class="gallery">%s</div>', $output );

    return $output;
}

// Регистрируем шорткод
add_shortcode( 'gallery', 'modified_gallery_shortcode' );

Пояснение кода

  1. Параметры галереи: Создаются параметры для шорткода, включая captiontag, установленный в пустое значение (""). Это означает, что подписи не будут выводиться.

  2. Генерация HTML: Вызывается стандартный шорткод галереи (gallery_shortcode), и возвращаемый код очищается от ненужных тегов с помощью strip_tags.

  3. Замена классов: Если необходимо, можно убрать классы, которые вам не нужны, с помощью str_replace.

  4. Регистрация шорткода: В конце код регистрирует новый шорткод, который заменяет стандартный.

Заключение

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

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

Оцените материал
Добавить комментарий

Капча загружается...