Intereting Posts
Проблема Установка прав доступа к темам-файлам Premium на компьютере Mac, локальном компьютере? Обновить значения настраиваемого поля на странице редактирования страницы woocommerce Проблема с перенаправлением URL Для автоматического входа в систему требуется обновление страницы Как WordPress обновляет плагины, не сталкиваясь с проблемами с разрешениями? Правило WordPress Rewrite для вложенных типов сообщений Почему мой shortcode не работает Пользовательские стили CSS-администратора для стилирования медиа-загрузчика? Категория WordPress, должность категории и отдельная должность Показать заголовок страницы на странице блога Включите конкретную запись в query_posts и удалите ее, если она уже находится в возвращенном списке. Как использовать get_categories () с плагином Event Organizer Возможно ли установить два почтовых плагина на одном сайте WordPress? Как это сделать? Изменение положения меню Genesis Проверка уникальности заголовка сообщения в качестве критерия петли

Как получить миниатюрный URL галереи и изменить размер эскиза по умолчанию?

когда я создаю галерею, я получаю этот код, но я не могу:

<img width="150" height="150" src="http://localhost/wp2/wp-content/uploads/2012/06/28_0120-150x150.jpg" class="attachment-thumbnail" alt="_28_0120" title="_28_0120"> 

Какая функция генерирует URL-адрес эскиза и как генерируется эскиз и обрезается до 150-150?

Я забыл упомянуть:
для страницы галереи я использую get_children , так что это то, что мне нужно для работы с

Solutions Collecting From Web of "Как получить миниатюрный URL галереи и изменить размер эскиза по умолчанию?"

Размер эскиза основан на размерах, определенных в WordPress Dashboard> Settings> Media , если ваша тема не отменяет его.

как я могу сделать свою тему переопределенной?

Чтобы изменить размер эскиза по умолчанию, вам необходимо использовать set_post_thumbnail_size . Добавьте это в свой файл functions.php:

 if ( function_exists( 'add_theme_support' ) ) { add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( W, H, true ); //change to false to disable hard cropping } 

Измените W и H на размеры (в пикселях), которые вы хотите установить для миниатюры. Например, set_post_thumbnail_size( 150, 150 ); устанавливает размер вашего эскиза до 150 x 150 пикселей.

ПРИМЕЧАНИЕ. Убедитесь, что в вашей теме уже есть add_theme_support( 'post-thumbnails' ); – Если это так, просто добавьте set_post_thumbnail_size( W, H ); под этим.


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

ВАРИАНТ – 1: (Весь код переходит в функции.php)

Во-первых, давайте зарегистрировать новый размер изображения для миниатюр галереи:

 if ( function_exists( 'add_image_size' ) ) { // set gallery thumbnail image's size to 250 x 250 pixels add_image_size( 'ilyad-gallery-thumb', 250, 250, true ); //change to false to disable hard cropping } 

Теперь давайте изменим код галереи по умолчанию WordPress с нашим собственным (чтобы мы могли установить собственный размер уменьшенных изображений для изображений в галерее). Все приведенные ниже коды являются коротким кодом галереи, взятым из wp-includes/media.php . Я изменил 'size' => 'thumbnail' на 'size' => 'gallery-thumb' чтобы галерея использовала наш недавно зарегистрированный размер изображения для галерей.

 // Modified Gallery Shortcode add_filter("post_gallery", "wpse56909_post_gallery",10,2); function wpse56909_post_gallery($output, $attr) { global $post; static $instance = 0; $instance++; // We're trusting author input, so let's at least make sure it looks like a valid orderby statement if ( isset( $attr['orderby'] ) ) { $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] ); if ( !$attr['orderby'] ) unset( $attr['orderby'] ); } extract(shortcode_atts(array( 'order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post->ID, 'itemtag' => 'dl', 'icontag' => 'dt', 'captiontag' => 'dd', 'columns' => 3, 'size' => 'gallery-thumb', 'include' => '', 'exclude' => '' ), $attr)); $id = intval($id); if ( 'RAND' == $order ) $orderby = 'none'; if ( !empty($include) ) { $include = preg_replace( '/[^0-9,]+/', '', $include ); $_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); $attachments = array(); foreach ( $_attachments as $key => $val ) { $attachments[$val->ID] = $_attachments[$key]; } } elseif ( !empty($exclude) ) { $exclude = preg_replace( '/[^0-9,]+/', '', $exclude ); $attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); } else { $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); } if ( empty($attachments) ) return ''; if ( is_feed() ) { $output = "\n"; foreach ( $attachments as $att_id => $attachment ) $output .= wp_get_attachment_link($att_id, $size, true) . "\n"; return $output; } $itemtag = tag_escape($itemtag); $captiontag = tag_escape($captiontag); $columns = intval($columns); $itemwidth = $columns > 0 ? floor(100/$columns) : 100; $float = is_rtl() ? 'right' : 'left'; $selector = "gallery-{$instance}"; $gallery_style = $gallery_div = ''; if ( apply_filters( 'use_default_gallery_style', true ) ) $gallery_style = " <style type='text/css'> #{$selector} { margin: auto; } #{$selector} .gallery-item { float: {$float}; margin-top: 10px; text-align: center; width: {$itemwidth}%; } #{$selector} img { border: 2px solid #cfcfcf; } #{$selector} .gallery-caption { margin-left: 0; } </style> <!-- see gallery_shortcode() in wp-includes/media.php -->"; $size_class = sanitize_html_class( $size ); $gallery_div = "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>"; $output = apply_filters( 'gallery_style', $gallery_style . "\n\t\t" . $gallery_div ); $i = 0; foreach ( $attachments as $id => $attachment ) { $link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false); $output .= "<{$itemtag} class='gallery-item'>"; $output .= " <{$icontag} class='gallery-icon'> $link </{$icontag}>"; if ( $captiontag && trim($attachment->post_excerpt) ) { $output .= " <{$captiontag} class='wp-caption-text gallery-caption'> " . wptexturize($attachment->post_excerpt) . " </{$captiontag}>"; } $output .= "</{$itemtag}>"; if ( $columns > 0 && ++$i % $columns == 0 ) $output .= '<br style="clear: both" />'; } $output .= " <br style='clear: both;' /> </div>\n"; return $output; } 

Эти изменения не влияют на ваши старые сообщения. Если вы считаете, что это нужно, вам нужно восстановить миниатюры для всех сообщений, для которых это самый популярный плагин – AJAX Thumbnail Rebuild .

[ Источник ]

ВАРИАНТ – 2: (Весь код переходит в functions.php)

Допустим, вы хотите, чтобы размер миниатюр в галерее составлял 250 х 250 пикселей. Перейдите в панель инструментов WordPress> Настройки> Мультимедиа и установите ширину и высоту размера эскиза до 250 и 250 соответственно. Полдела сделано!

Теперь нам нужно изменить размер миниатюр, представляющих ваши сообщения. Позволяет сначала зарегистрировать новый размер миниатюр:

 if ( function_exists( 'add_image_size' ) ) { add_image_size( 'ilyad-post-thumb', 150, 150, true ); //change to false to disable hard cropping } 

Теперь все экземпляры кода для эскизов сообщений в файлах тем должны быть изменены, чтобы использовать ilyad-post-thumb . Вот два примера.

  • CASE – 1: Если ваша тема использует что-то вроде этого:

     <?php if ( '' != get_the_post_thumbnail() ) : $thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), thumbnail ); ?> <div class="entry-image"> <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'reddle' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"> <img class="featured-image" src="<?php echo $thumbnail[0]; ?>" alt=""> </a> </div> 

    Его следует изменить следующим образом:

     <?php if ( '' != get_the_post_thumbnail() ) : $thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), ilyad-post-thumb ); ?> <div class="entry-image"> <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'reddle' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"> <img class="featured-image" src="<?php echo $thumbnail[0]; ?>" alt=""> </a> </div> 

    Выше мы просто меняем экземпляр thumbnail (размер изображения) на ilyad-post-thumb .

  • CASE – 2: Если ваша тема использует что-то вроде этого:

     <?php if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it. the_post_thumbnail(); } ?> 

    Измените его так:

     <?php if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it. the_post_thumbnail('ilyad-post-thumb'); } ?> 

Эти два примера должны дать вам представление о том, как вы должны идти. 🙂

PS: Этот ответ написан в рамках моих знаний.

В Wp-admin вы можете установить размер в настройках -> Мультимедиа.

Если вам нужен URL-адрес на странице, вы можете использовать эту функцию:

 <?php wp_get_attachment_thumb_url( $post_id ); ?>