gillespieza
  • 0
Учитель

Как отфильтровать атрибуты title и alt в шорткоде галереи?

  • 0

Я показываю галерею сообщений внутри пользовательского типа сообщений, используя в своем шаблоне single-custom.php следующее:

<?php echo do_shortcode('

'); ?>

Одна из вещей, включенных в вывод, находится title="filename" в <img> теге, например:

<img width="150" height="150" src="http://mydomain.com/wp-content/uploads/DSC_0036-150x150.jpg" class="attachment-thumbnail" alt="DSC_0036" title="DSC_0036" />

Я не хочу выводить атрибут title. В основном я не хочу, чтобы в тексте при наведении были дерьмовые имена файлов, но есть сотни изображений, и я не готов заходить в медиагалерею и редактировать заголовок для каждого из них. Возможно, я бы предпочел также изменить alt атрибут на имя сообщения.

Есть ли способ отфильтровать галерею, чтобы выводить имя сообщения в атрибутах alt и title вместо имени файла?

Share
  1. Шорткод анализируется gallery_shortcode() , который звонит wp_get_attachment_link() , который в свою очередь звонит wp_get_attachment_image() . Эта последняя функция записывает <img> тег с title атрибутом. Вам повезло, потому что атрибуты фильтруются через wp_get_attachment_image_attributes, так что вы можете подключиться к этому и удалить title .

    Для этого вы прикрепляете крючок перед вызовом шорткода и удаляете его после того, как сделали это. Вы можете либо сделать это в своем шаблоне, если он одноразовый, либо, если вы более продвинуты, вы «захватываете» шорткод своей собственной функцией, которая добавляет хук, вызывает исходную gallery_shortcode() функцию и удаляет хук.

    • 0
  2. Это очень полезно, спасибо вам обоим. Вы также можете добавить атрибут названия авторского права с автоматически установленным годом: $attr['title'] = '© '. date("Y"). ' Copyright '. get_option('blogname');

    • 0

Оставить ответ

You must login to add an answer.