#wordpress #wordpress-theming
#wordpress #wordpress-тематизация
Вопрос:
Я добавил следующий код в свои дочерние элементы functions.php
add_filter( 'img_caption_shortcode', 'my_img_caption_shortcode', 10, 3 );
function my_img_caption_shortcode( $output, $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">TEST TEST' . $attr['caption'] . '</p>'
. '</div>';
}
Тем не менее, все изображения в the_content выводятся в сообщении следующим образом:
<figure class="wp-block-image size-large"><img loading="lazy" width="960" height="637" src="https://www.example.com/img.jpg" alt="example" class="wp-image-9987" srcset=" (...) "><figcaption>My caption text</figcaption></figure>
Приведенный выше хук, похоже, не имеет никакого эффекта.
Содержимое сообщения считывается в single.php используя функцию the_content().
- Кэш очищен
- Последняя версия WP
- нет сообщения об ошибке
Ответ №1:
Попробуйте убедиться, что img_caption_shortcode()
вызывается функция. В нашем случае кто-то добавил пользовательский обработчик коротких кодов несколько лет назад, и пользовательский обработчик не применил img_caption_shortcode
фильтр.