Intereting Posts
Добавить возможности через плагин для другого плагина Когда я пытаюсь использовать контактную форму 7, она разбивает мою страницу Пользовательский тип сообщения + пользовательская таксономия = проблемы с листингом архива Обтекание add_query_arg с esc_url не работает Является ли WordPress уязвимым для httpoxy? Трехэтапная форма заказа, как перейти к следующему шагу просмотр подкатегорий по идентификатору В чем разница между плагинами Page Builder и программным обеспечением Theme Builder? Откат от текущей версии WordPress до предыдущей Плагин: невозможно сохранить параметр выравнивания изображения для отображения в виджете в боковой панели Передайте the_post () в качестве параметра Ограничить редактирование / удаление почты на основе идентификатора пользователя и настраиваемого поля Не удается найти, где изменить <html> attrbitutes Проблема с Multisite Login Поиск сообщений, содержащих совпадающие элементы массива в мета-поле usign WP_Query

Как обернуть подписи в WordPress внутри тегов H2, H3?

Я искал Google и не могу найти упоминания о том, как изменить подписи к изображениям WordPress, чтобы обернуть подпись в H2 или H3.

Как мы помещаем подписи к изображениям внутри тегов H2, H3?

Благодарю.

Вы можете подключиться к фильтру img_caption_shortcode и заменить все изображение с субтитрами. Здесь я скопировал функцию короткого кода заголовка из WP4.5, оставил версию, используемую, если ваша тема объявляет поддержку HTML5, как она есть (с использованием figcaption), и модифицировала версию, отличную от HTML5, для использования h2.

 function wpse_233354_img_caption_shortcode( $empty, $attr, $content = null ) { // New-style shortcode with the caption inside the shortcode with the link and image tags. if ( ! isset( $attr['caption'] ) ) { if ( preg_match( '#((?:<a [^>]+>\s*)?<img [^>]+>(?:\s*</a>)?)(.*)#is', $content, $matches ) ) { $content = $matches[1]; $attr['caption'] = trim( $matches[2] ); } } elseif ( strpos( $attr['caption'], '<' ) !== false ) { $attr['caption'] = wp_kses( $attr['caption'], 'post' ); } $atts = shortcode_atts( array( 'id' => '', 'align' => 'alignnone', 'width' => '', 'caption' => '', 'class' => '', ), $attr, 'caption' ); $atts['width'] = (int) $atts['width']; if ( $atts['width'] < 1 || empty( $atts['caption'] ) ) return $content; if ( ! empty( $atts['id'] ) ) $atts['id'] = 'id="' . esc_attr( sanitize_html_class( $atts['id'] ) ) . '" '; $class = trim( 'wp-caption ' . $atts['align'] . ' ' . $atts['class'] ); $html5 = current_theme_supports( 'html5', 'caption' ); // HTML5 captions never added the extra 10px to the image width $width = $html5 ? $atts['width'] : ( 10 + $atts['width'] ); /** * Filter the width of an image's caption. * * By default, the caption is 10 pixels greater than the width of the image, * to prevent post content from running up against a floated image. * * @since 3.7.0 * * @see img_caption_shortcode() * * @param int $width Width of the caption in pixels. To remove this inline style, * return zero. * @param array $atts Attributes of the caption shortcode. * @param string $content The image element, possibly wrapped in a hyperlink. */ $caption_width = apply_filters( 'img_caption_shortcode_width', $width, $atts, $content ); $style = ''; if ( $caption_width ) $style = 'style="width: ' . (int) $caption_width . 'px" '; $html = ''; if ( $html5 ) { $html = '<figure ' . $atts['id'] . $style . 'class="' . esc_attr( $class ) . '">' . do_shortcode( $content ) . '<figcaption class="wp-caption-text">' . $atts['caption'] . '</figcaption></figure>'; } else { $html = '<div ' . $atts['id'] . $style . 'class="' . esc_attr( $class ) . '">' . do_shortcode( $content ) . '<h2 class="wp-caption-text">' . $atts['caption'] . '</h2></div>'; } return $html; } add_filter( 'img_caption_shortcode', 'wpse_233354_img_caption_shortcode', 10, 3 ); 

В WordPress вы можете изменить вывод HTML короткого кода [caption], используя специальный фильтр на крюке img_caption_shortcode. Вы можете изменить все, как хотите. Фильтр должен возвращать строку, содержащую полный HTML-код, который должен отображаться.

В кодексе у вас есть полный пример того, как его изменить.

 add_filter( 'img_caption_shortcode', 'wpse_233363_img_caption_shortcode', 10, 3 ); function wpse_233363_img_caption_shortcode( $empty, $attr, $content ){ $attr = shortcode_atts( array( 'id' => '', 'align' => 'alignnone', 'width' => '', 'caption' => '' ), $attr ); if ( 1 > (int) $attr['width'] || empty( $attr['caption'] ) ) { return ''; } if ( $attr['id'] ) { $attr['id'] = 'id="' . esc_attr( $attr['id'] ) . '" '; } return '<div ' . $attr['id'] . 'class="wp-caption ' . esc_attr( $attr['align'] ) . '" ' . 'style="max-width: ' . ( 10 + (int) $attr['width'] ) . 'px;">' . do_shortcode( $content ) . '<p class="wp-caption-text">' . $attr['caption'] . '</p>' . '</div>'; }