Intereting Posts
Когда я выбираю страницу для главной страницы, она пуста Htaccess удаляет даты с корневого сайта, но не из поддомена Как отображать только сообщения верхнего уровня в цикле через WP_Query? Как установить WPMU с композитором? Как удалить имена классов категорий постов из body_class Данные, вставленные с помощью вставки wpdb, отличаются от данных pressnt в базе данных. Настройка многостраничных страниц WordPress с пользовательскими постоянными ссылками WordPress | Дата не всегда отображается get_the_title () возвращает результаты предыдущего цикла Как разрешить пользователям указывать интересы при регистрации и отображать ли они контент, отображаемый на главной странице? Использование wp_ajax и wp_ajax_nopriv hooks добавить загружаемое изображение в стандартную таксономию проблема при попытке добавить ++ 1 для пользователя meta Проверьте, что находится в URI (пост, архив и т. Д.) Добавить фильтр 'wpautop' в мета-окно textarea

Подпись на странице с добавлением нежелательных 10px в ширину

Я пытаюсь создать изображение с надписью на странице, с которой я работаю. В параметрах изображения я выравнивал его с шириной изображения 220. Без заголовка у меня нет проблем, однако с добавлением надписи он добавляет обертку div с шириной строки в 230 пикселей. Единственный способ исправить это – установить ширину вручную в параметрах изображения на 210 пикселей, а затем сделать встроенную ширину 220px (она просто добавляет 10px к значению).

Как предотвратить добавление этого дополнительного 10px к ширине встроенного стиля?

Solutions Collecting From Web of "Подпись на странице с добавлением нежелательных 10px в ширину"

Вот что вы можете сделать. В начале функции выполнения короткого кода есть фильтр в переднем конце, который позволит вам захватить подписи. Возврат непустого значения прекратит выполнение короткого кода, поэтому, если вы просто обработаете короткий код так, как хотите, чтобы он был обработан и возвращал этот результат, вы можете избавиться от надоедливого 10px встроенного дополнения. Включение чего-то подобного в файл functions.php вашей темы или в плагин будет работать:

 function wpse14305_img_caption( $empty_string, $attributes, $content ){ extract(shortcode_atts(array( 'id' => '', 'align' => 'alignnone', 'width' => '', 'caption' => '' ), $attributes)); if ( empty($caption) ) return $content; if ( $id ) $id = 'id="' . esc_attr($id) . '" '; return '<div ' . $id . 'class="wp-caption ' . esc_attr($align) . '">' . do_shortcode( $content ) . '<p class="wp-caption-text">' . $caption . '</p></div>'; } add_filter( 'img_caption_shortcode', 'wpse14305_img_caption', 10, 3 ); 

Начиная с версии 3.7 есть фильтр, чтобы напрямую изменять ширину оберточного div. Это позволит исправить дополнительные 10px и не позволит надписи пропустить ширину изображения (в отличие от width: auto! Important).

 function wp456_img_caption_width( $width, $atts, $content){ //by default 10 is added if image caption return $width - 10; } add_filter( 'img_caption_shortcode_width', 'wp456_img_caption_width', 10, 3 ); 

Я хотел бы по-разному подойти к Джону – его решение предполагает дублирование внутренних функций img_caption_shortcode() , которые были изменены в обновлениях WordPress с момента добавления этого решения. Вместо этого вы можете подключиться к параметрам короткого кода, переданным в код генерации заголовка, и просто вычесть 10px из ширины, чтобы противодействовать тому, что делает WordPress:

 add_filter('shortcode_atts_caption', 'fixExtraCaptionPadding'); function fixExtraCaptionPadding($attrs) { if (!empty($attrs['width'])) { $attrs['width'] -= 10; } return $attrs; } 

Существует также простое решение CSS для переопределения встроенного стиля WordPress.

 .wp-caption { display: table-cell; width: auto !important; } 

Установка ширины в auto на элементе блока приведет к расширению ширины, чтобы заполнить доступное пространство, что, вероятно, не является тем, что требуется, но задает display: table-cell заставляет div автоматически изменять размер в соответствии с содержимым.

Как элемент table-cell, div-caption div автоматически задает размер, как если бы он был встроенным блоком, но он ведет себя как элемент блока в этом содержимом, который следует за ним, даже встроенный контент без контейнера, отображается ниже div а не на той же линии, как если бы это был встроенный блок.

( !important поскольку встроенное стилирование в противном случае переопределяет таблицу стилей.)

Мне не удалось найти окончательное описание того, как должна себя вести табличная ячейка css, но я протестировал ее в Internet Explorer (включая IE8 на WinXP), Firefox, Chrome и Opera и нашел полную согласованность.