Анонс и миниатюры в WordPress

миниатюра

Как сделать текст анонса и миниатюры в wordpress в html формате?

Анонс и миниатюры в WordPressЗдравствуйте, дорогие друзья! Сегодня решил поделиться с вами своим опытом оформления и вывода анонсов статей с миниатюрами в wordpress. Такие анонсы, как правило, выводятся на главной странице wordpress блога, и конечно если они сделаны с миниатюрой (картинкой) это всегда выглядит лучше и конечно привлекает внимание и притягивает взгляд ваших читателей к статье.

Как ни странно, но очень многие темы для wordpress не выводят анонсы и миниатюры в них, а говорить о форматированном тексте в них вообще не приходится. Видимо разработчики шаблонов не озадачиваются этим вопросом, надеясь, что все знают и умеют это делать самостоятельно.

Конечно, есть способ вывода анонсов с помощью плагинов или подручных средств wordpress с помощью тега «more». Однако это не совсем удобно каждый раз ручками делать анонс. Лучше чтоб все было на автомате. Согласны?

Анонс и миниатюры в wordpress можно вывести полностью автоматом с помощью скрипта TimThumb. Однако в нем есть свои минусы. Например, если вы не вставили картинку и обязательно квадратную (иначе он искажает картинку), то на главной странице в анонсе вместо картинки будет отображаться пустой квадратик – битая ссылка на картинку. Видно это только в Хроме, но сегодня все больше и больше людей пользуются именно им.

Поэтому сегодня мы рассмотрим другой способ.

Первое что нужно сделать, так это проверить включена в вашей теме функция миниатюры в WordPress. Для этого зайдите в консоль далее «Записи» и посмотрите, есть ли у вас в правом сайдбаре внизу бокс «Миниатюра записи».

Миниатюра WordPress

Если есть значит все нормально, а если нет, не страшно. Откройте файл вашей текущей темы functions.php и вставьте в него эту функцию:

add_theme_support('post-thumbnails');

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

Теперь нам надо сделать, чтоб на главной странице выводился не целый пост, а только анонс, в wordpress такая функция уже есть, только мы ее немного доработаем, и будем использовать для нашей цели.

Открываем файл index.php и находим в нем вот такую функцию:

<?php the_content() ?>

И просто меняем ее вот на этот код:

<?php the_post_thumbnail(array(150,150), array('class' => 'alignleft'));?>
<?php the_excerpt() ?>
<a href="<?php the_permalink(); ?>">Читать далее</a>

Первая строчка этого кода отвечает за вывод миниатюры, той которую мы задали при написании поста в боксе «Миниатюра записи». Цифры 150 – это размер выводимой картинки, в принципе вы можете написать любой. Далее идет функция, которая заставляет текст обтекать картинку слева (можно сделать справа)….

// выравнивание справа

the_post_thumbnail('thumbnail', array('class' => 'alignright'));

// выравнивание слева

the_post_thumbnail('thumbnail', array('class' => 'alignleft'));

// центрирование

the_post_thumbnail('thumbnail', array('class' => 'aligncenter'));

//с помощью стилей CSS, например класс – one:

the_post_thumbnail('thumbnail', array('class' => 'one'));

 

Вторая строчка кода отвечает непосредственно за вывод анонса. Мы к нему еще вернемся…

Третья строчка это ссылка на вашу статью, надпись вы так же можете изменить на свое усмотрение.

Теперь вернемся к оформлению анонса и текста в нем. Первое ради чего вся эта затея, это конечно количество слов, которое будет выводиться. Это определяется методом «Научного тыка», и зависит от размера картинки, шаблона и ширины поля для текста на главной странице.

Второе это оформление самого текста, т. е. форматирование. Например, выше упомянутый скрипт не поддерживает форматирование. А красиво и правильно оформленная страница всегда привлекает больше внимания ваших читателей.

Теперь займемся делом. Снова открываем наш файл functions.php и добавляем в него следующую функцию:

function improved_trim_excerpt($text) {
	global $post;
	if ( '' == $text ) {
	$text = get_the_content('');
	$text = apply_filters('the_content', $text);
	$text = str_replace(']]>', ']]>', $text);
	$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
	$text = strip_tags($text, '<p>,<br>,<h2>,<h1>,<em>');
	$excerpt_length = 32;
	$words = explode(' ', $text, $excerpt_length + 1);
		if (count($words)> $excerpt_length) {
			array_pop($words);
			array_push($words, ' ...');
			$text = implode(' ', $words);
		}
	}
	return $text;
}

Для того чтоб не было конфликта, отключаем стандартный the_excerpt и включаем наш усовершенствованный, добавив еще один код:

remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'improved_trim_excerpt');

Сейчас объясню, что мы сделали. Нас интересуют следующие строки:

Строчка

$text = strip_tags($text, '<p>');

отвечает за html теги в анонсе, сюда можно добавить другие теги, которые вам необходимы например:

$text = strip_tags($text, '<p>,<b>,<a><br>,<strong>');

таким образом, вы получите полноценный анонс записи с форматированным текстом.

Строчка

$excerpt_length = 80;

Отвечает за то, сколько слов мы хотим выводить в анонсе (метод «Научного тыка») в данном случае 80

Эта строчка

array_push($words, '[...]');

отвечает за то, чем заканчивается анонс. Думаю, вы часто видите этот не очень красивый […] — знак окончания текста. Убираем его, или можете заменить на что-то свое.

array_push($words, ' ');

Вот и все, теперь ваши анонсы и миниатюры wordpress блога будут выглядеть на все 100%!

примерно вот так:

анонс wordpress

Если у вас есть какие-то вопросы, пишите их в комментариях, постараемся разобраться вместе, ну а если у вас есть что-то  дополнить буду рад.

Автор - Александр

Меня зовут Александр.
Я Вебмастер и SEO — специалист по созданию и продвижению сайтов на WordPress.
В профессиональном интернет-маркетинге c 2007 года. Основные направления: создание и продвижение web-проектов в российском сегменте интернет. Специализация: создание сайтов и их комплексное продвижение, внутренняя оптимизация, внешняя оптимизация, трафиковое продвижение, контентное продвижение...

Связаться со мной >>
Посмотреть все публикации

    Ваше имя (обязательно)

    Ваш e-mail (обязательно)

    Сообщение (обязательно)

    "Поставьте галочку, если вы не робот"

    и решите пример ответ буквами

    комментариев 185

    • Виталий Парчинский

      Очень полезная статья! Я и раньше периодически просматривал Ваши темы. Много ценного. А вот я 2 дня бьюсь над проблемой: нашел и поставил новую тему (понадобились колонки были разной ширины) а слайдер не работает.

    • непонимаю где ты эту функцию нашел в index.php.У меня ни в одной теме нет такого, как быть.

      • Александр

        @Денис, видимо у вас особенные темы, за вывод главной страницы и ее оформление в wordpress отвечает файл index.php. Главная — это страница вывода ленты постов. Просто у вас может она немного по другому выглядит… Но контекст-то выводит какая-то функция…?

        • @Александр, Ну у меня вообщем такая проблемка, есть рубрики в них анонсы записей, если я ставлю полный размер по он миниатюру выводит слева, если ставлю какойнить сайбдар то он выводит сверху и притом над заголовком записи.Если знаете помогите

        • @Александр, вот я создал первую запись она с миниатюрой, все остальные без.

          • Александр

            @Денис, вам надо править css стили темы и шаблоны страниц блога и настраивать их под ваш вкус. Просто ваша тема так сделана изначально, видимо автор темы так ее задумал. Посмотрите в настройках темы, может там есть другие варианты настройки вида шаблона…

          • @Денис, Увы там есть настройки но не те которые мне нужны(

            • Александр

              @Денис, тогда вам остается только самому поправить css стили и шаблоны темы.

    • Светлана

      спасибо огромное! целый вечер ломала голову как вывести анонс с картинкой, пока не нашла ваш сайт. Очень все понятно и доступно описано. Добавила в закладки!

    • Александр — добрый день!
      Не поможете? Сайт cultobzor.ru
      В самом низу есть блок новостей во всю длину основной части, сейчас выводится титл, картинка и заголовок… Хотелось бы выводить и часть текста.
      Не являюсь специалистом, поэтому нужна помощь…
      В коде есть строка —
      Я так понял этим накладывается ограничение по выводу только заголовка, без части текста…
      Есть ли возможность выводить часть текста статьи?
      Заранее спасибо!
      Вот кусочек кода отвечающего за этот блок:


      have_posts()) : $my_query->the_post();$do_not_duplicate = $post->ID;
      ?>
      »
      <a href="" rel="bookmark" title="">

      Дата: - - @ :
      <a href="" rel="bookmark" title=" ">
      <img src="/scripts/timthumb.php?src=/&w=90&h=90&zc=1&q=100"
      alt="" class="thumb-medium" width="90px" height="90px" />
      <a href="" rel="bookmark" title=""><img src="/images/read_more.jpg" alt="Read More" />

      • Александр

        @Кирилл, добавьте после строки с кодом timthumb.php перед открывающимся кодом ссылки, вот этот код цифры это количество знаков выводимых в тексте, определите опытным путем.

    • remove_filter('get_the_excerpt', 'wp_trim_excerpt');
      add_filter('get_the_excerpt', 'improved_trim_excerpt');

      Подскажите, в какой файл нужно добавить этот код?

    • Здравствуйте! Проблема вывода фото в краткой новости материала. Если с компа загружаю фото, то его можно увидеть и в краткой, и полной новости. Если с библиотеки загруженных фото сайта, то только в полной новости, а в краткой еще раз повторяет название статьи у виде ссылке. Вот первая новость с фото с компа и две другие с сайта https_//dzerkalo.kr.ua/?cat=22 . Подскажите, пожалуйста, что нужно подправить.

      • Александр

        @dzerk, ваш сайт заблокирован «Сертификат безопасности сайта не является доверенным!» поэтому ничего сказать не могу (

        • @Александр, захожу на сайт. нормально. а как сделать что б сайт был доверенным?

          • Александр

            @dzerk, надо обратиться к хостинг провайдеру чтоб обновили сертификат безопасности. Я заходил на ваш сайт по ссылке оставленной в коменте, а там https://

    • Добрый день!
      Подскажите пожалуйста! Решил сделать анонсы статей с миниатюрами. На главной все получилось, а вот в категориях не показывает миниатюры в анонсах.
      Могу предоставить доступ к сайту или написать сюда код категории. Кстати, у меня эти файлы находятся в разделе loop.php

      • Александр

        @Михаил, для категорий надо отредактировать файл отвечающий за архивы, сделать по аналогии с главной.

    • Статья то что надо! Перерыл кучу информации, а нашел решение своей проблемы именно здесь. Большое спасибо!

    • Спасибо, Александер!
      Очень нужное.
      А теперь вопрос. Можно ли вывести анонсы с (img-mini) с двух разных рубрик на одну страницу в блок, где размещается контент?
      P.S. Статичная-главная страница и вместо основного контента находятся два блока (левый и правый), где размещаются анонсы рубрик ( новости, публикации )
      С уважением, Семён.

    • Алексей

      Доброго времени суток Александр! Статья ваша меня заинтересовала, пригодится в будущем обязательно, за что спасибо. С WordPress работаю совсем недавно и после поисков подходящего шаблона остановился на Graphene. Подходит мне идеально по всем параметрам, но есть одна проблема. Все дело в том что он выводит дефолтные миниатюры 150х150 пикселей что есть не очень удобно.Подскажите какой код задает эти миниатюры и что сделать чтобы его изменить.
      В параметрах медиофайлов выставленные значения не работают а сам шаблон не поддерживает редактирование размеров файлов.На сайте авторов данного шаблона http://www.graphene-theme.com/ — и миниатюры совсем другие да и выводятся по 2.Кстати можно ли реализовать это? то есть вывод двух превьюшек? Заранее спасибо.

      • Александр

        @Алексей, размеры миниатюр, задает код в файле header.php или может быть index.php. в подобном контейнере: div class="thumbnail" цыфры 150 надо поменять на те, которые вам нужны…
        На сайте авторов, выведены посты в два столбца, а размер миниатюры подобран под размер столбца на всю ширину анонса. Это можно сделать, только нужно править шаблон или если есть настройки шаблона выбирать там опцию — текст постов в две колонки.

        • Александр, спасибо, с миниатюрами разобрался. Буду двигать в направлении вывода двух колонок. К сожалению в шаблоне этого не предусмотрено. Спасибо за совет.

          • Александр

            @Алексей, вот здесь можете посмотреть как вывести записи в два столбца http://studio.visionmax.ru/wordpress-vyivod-postov/

    • Сделал все как у вас.. Но миниатюрка получается сверху а не слева… текст идет под ней… а надо именно слева… что ж не так то…

    • добрый день, Александр! помогите, пожалйста, разобраться.
      у меня на сайте http://mybiser.ru/ раньше не было миниатюр, в публикации добавляла картинку через Nextgen Gallery. но недавно захотела сделать вывод похожих новостей с картинками и понадобились миниатюры. подскажите, как сделать миниатюры для старых сообщений?

      • Александр

        @Наташа, Вы можете воспользоваться этой статьей, правда картинки(миниатюры) вам в старые посты придется вставлять в ручную и убирать старые то же. Если у вас в постах уже есть картинки то можно воспользоваться вот этой моей статьей http://studio.visionmax.ru/miniatyuryi-wordpress/

    • Все здорово! Работает!
      А как бы еще название статьи в анонс вывести. И уж совсем было бы здорово, если бы между названием и текстом можно было вставить дату создания.

      • Александр

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

    • @Ольга, а «новости» у вас это лента блога или рубрика?
      «Новости» — это рубрика.
      Но вывожу я ее на страницу. Дело в том, что мне не удалось рубрику засунуть в верхнее меню, поэтому пришлось конструировать страницу.

      • Александр

        @Ольга, если это рубрика вам необходимо проделать те же манипуляции с файлом archive.php, т. е. вставить в него код вывода как на главной.

        • @Александр, у меня вообще нет такого файла, я его удалила за ненадобностью. Я работаю с файлом page-news.php — шаблон, который создан специально для страницы новостей

          • Александр

            @Ольга, вообще-то такие файлы удалять нельзя )) это служебные файлы шаблона, тогда все что описано сделайте с вашим файлом.

    • Елизавета

      Добрый день, Александр! помогите, пожалуйста, разобраться, как нужно отключать стандартный the_excerpt , нужно что то удалить? Или без удаления добавлять следующий код? Если я просто добавляю, то получаются огромные буквы.
      Для того чтоб не было конфликта, отключаем стандартный the_excerpt и включаем наш усовершенствованный, добавив еще один код:

      remove_filter(‘get_the_excerpt’, ‘wp_trim_excerpt’);
      add_filter(‘get_the_excerpt’, ‘improved_trim_excerpt’);

    • Елизавета

      А как и где это исправить стили оформления или отключить их в новом коде?

    • Добрый день, нужна ваша помощь. Скажите, пожалуйста, что нужно сделать, чтобы миниатюры не сдвигались в рубриках (подрубриках). Отправляю ссылку для наглядности, потому что могу некорректно разъясняться, заранее спасибо!

    • Александр, добрый день!
      Простик хороший.
      Но у меня с миниатюрами проблем нет (все хорошо организовано в теме и меня все устраивает)
      НО! Проблема в другом.
      Возможно сделать вывод миниатюры только в анонсе, а в полной записи НЕ ВЫВОДИТЬ?
      Я конечно понимаю, что это возможно, но КАК?
      За ранее спасибо)))))))))

      • Александр

        @Goldgraff, да это возможно, просто в записи не надо вставлять картинку, а в миниатюре наоборот указать картинку. Тогда в анонсе она будет а в записи нет.

    • спасибо Александр за простое и действенное решение. Вот только произвольные типы постов не хотят слушаться ) миниатюра лезет верх и ограничение на кол-во слов не работает с ними.. А вот со стандартными типами постов все в пордяке.

      ЗЫ
      но мы не сдаемся ) и будем искать решение

      • Александр

        @Kadi, можно попробовать с помощью css решить проблему или дорабатывать php код вывода произвольных постов.

        • @Александр,
          разобрался с проблемой )
          все дело было в «рыбе». я поленился заполнить пробные произвольные посты каким-нибудь осмысленным текстом и скопировал одно и то же слово много раз (типа абзац %)). А как оказывается одинаковые слова не суммируются и из-за этого абзац получался большим и соответственно миниатюра лезла верх..

    • Пробую реализовать подсчет не по кол-ву слов, а по кол-ву символов. Т.к. слова имеют разную длину, то и анонсы получаются разной длины.

    • Екатерина

      Александр, скажите, а как сделать, чтобы «Читать далее» было не с правой стороны, а с левой?

    • Екатерина

      А это в каком файле находится?

      • Александр

        @Екатерина, это находится в файле стилей вашей текущей темы, с расширением .css

    • У меня проблема с сайтом. Текст в комментах практически неразличим В чём может быть проблема?

      • Александр

        @Марина, вам нужно поправить стили для текста, в файле стилей вашей текущей темы.

    • Александр, а не поможете с обратной проблемой? Как сделать, чтобы картинка, которую я задаю в начале полной новости, не выводилась в короткой? В короткой я задаю миниатюру и полноразмерная картинка из полной новости мне не нужна. Как ее убрать?

      • Александр

        Вы можете вставить любую картинку в анонс. Просто задайте ее в блоке «задать миниатюру» в редактре статей справа внизу.

        • @Александр, так я ее задал, с миниатюрой проблем нет.
          В тексте новости я сначала вставляю картинку потом идет текст. Добавляю через пару предложений разрыв и получается, что эта картинка перед текстом, которая мне нужна только в полной новости, отображается и в анонсе. можно ее как-нибудь из анонса выпилить?

          • Александр

            @iScrag, можно попробовать убрать с помощью стилей. Или ограничите количество слов в анонсе так, чтоб не захватывал вторую картинку, но текста должно быть столько чтоб обтекал картинку, иначе будет не красиво…

        • @Александр, решил проблему с помощью связки . Текст выше нее попадает в анонс, все что ниже в полной новости.
          P.S. Сделайте что-нибудь с формой написания комментария — она постоянно чистится, если оторваться от комментирования.

        • @Александр, упс, код в предыдущем комментарии не отобразился. там связка «more и noteaser»

    • Александр, доброго дня!
      А вот такая задачка: нужно, чтоб текст в описание (excerpt) брался после 100-го знака (или 15-го слова), после новой строки.

      • Александр

        @Игорь, с такой задачей не сталкивался, поэтому подсказать не могу. Попробуйте поискать в инете )

    • Здравствуйте! Почему при попытке поменять $excerpt_length = 32; на другую цифру при обновлении ничего не меняется?

      • Александр

        @Андрей, я думаю, что у вас закэшировалась страница. Попробуйте очистить кэш браузера и перегрузите страницу.

    • Александр Костерин

      Александр, добрый день!
      Вопрос такой — вывод миниатюр в анонсе постов на главной странице ранее был реализован с помощью скрипта timthumb. В настоящее время скрипт не работает и миниатюры не выводятся. (Сайт не мой (друг обратился с вопросом)) Ваш совет нравится, но пока не пробовал — не знаю, надо ли отключать этот скрипт и если «да», то как. Если знаете — подскажите, пожалуйста.

    • Здравствуйте. Вы, наверное, самый «живой» программист в сети). Тыкаюсь со своей проблеммой куда только можно, но решения не нахожу, может быть вы поможете. Установил на сайт магазин-партнерку, и в процессе выяснилось, что все фото товаров в категориях дублируются. Как, например, здесь: _http://sunny-site.ru/type/aksessuary. Шаблон автоматически подгружает верхнюю миниатюру, не регулируемую по ширине. Регулирование попробую вашим методом, но можно что-либо сделать, чтобы исключить миниатюры для определенной рубрики? При чем адрес каждой картинки берется как для миниатюры вордпресс, так и для товара из плагина. Большое спасибо.

      • Александр

        @Эрик, Вам просто нужно убрать из шаблона функцию вывода этой миниатюры и она исчезнет.

    • Если бы я знал, где это). Шаблон старательно просмотрен и «проэкспериментирован» со всеми thumbnail, img, jpeg и рх во всех файлах без исключения. Замена content на expert приводит к исчезновению всей информации товара вместе с картинкой. Ваш способ тоже не помог — из всех content файла index.php строки the_content попросту нет. Поэтому заменить ее и добиться уничтожения сведением цифр миниатюры к нулю невозможно.

    • Ангелина

      Здравствуйте! У меня почему-то миниатюра выводилась в анонсе вместе с большой картинкой. а после того, как я отредактировала файл index. php так, как Вы советуете в статье, стало отображаться 2 маленьких картинки.
      Что посоветуете сделать?

    • Добрый день! Как убрать вывод миниатюры в пост, а оставить только в анонсе? Уже мозг весь сломал) В основных фахлах шаблона темы ничего свзанного с миниатюрами нет, они палюбому выводятся с помощью timthumb.php, как его можно поправить?

      • Александр

        @pivkop, просто в тексте не нужно вставлять картинку, а задавать ее только в боксе миниатюры.

    • Алексей

      Все сделал по инструкции, однако текст анонса выводится очень близко к миниатюре, можно ли это исправить (_http://just-movie.ru/)

    • Здравствуйте! А как вывести миниатюру в анонсах РУБРИК? Функция миниатюры записи имеется, но работает она только в отношении главной страницы. Готова в каждом анонсе выводить ее в ручную только подскажите как.

      • Александр

        @Юля, для рубрик как правило надо отредактировать файл отвечающий за архивы, сделать по аналогии с главной.

        • @Александр, а немного поконкретней (для чайников), если это возможно?

          • Александр

            @Юля, за вывод ленты рубрик отвечает файл archive.php в нем есть функция вывода анонсов, такая же ка и файле index.php вывода ленты постов, вот ее и нужно заменить на такую же как и в index.php, то есть новую, о которой говорится в посте… Надеюсь понятно объяснил? ))

    • Спасибо большое )))

    • Александр, здравствуйте!) К сожалению, подписка на ваш сайт не сработала, и не удалось поблагодарить вас за помощь. Наткнулся на эту страничку снова, в поиске решения проблемы выведения окна с заданным текстом, при наведении на любую миниатюру. Но беспокоить вас снова просто неудобно). Огромнейшее спасибо вам за помощь в решении предыдущей задачи!). Просто не описать, как выручили. Удачи вам, и всех благ в наступающем Новом Году!!

      • Александр

        @Эрик, спасибо! Рад что помог. ) Спасибо за поздравление! И вас с наступающими!

    • Владимир

      Добрый день, Александр!
      У меня такая проблема: если заполнить поле «Подпись» в полном изображении, то в полном тексте надпись появляется снизу изображения, как и нужно, а в анонсе этот текст появляется на месте первого абзаца. При этом поле «Подпись» в миниатюре не заполнено. Если убрать текст из поля «Подпись» в полном изображении, то в анонсе все правильно отображается.
      Как сделать так, чтобы подпись к изображению появлялась в полном варианте под изображением, а в анонсе этот текст не отображался?

    • Владимир

      Очень неубодный тут модуль комментов.

      • Александр

        @Владимир, а чем не удобный?

        • Владимир

          Александр, мне надоело уже по несколько раз текст комментария набирать, он постоянно куда-то исчезает, форматирование разъезжается (Ubuntu, Firefox), нужно постоянно удалять текст подсказки из обязательных полей. Я знаю про класс, отвечающий за вывод (wp-caption-text), но он только в стилях упоминается.

    • Владимир

      ‘alignleft’));?>

      Больше нет ничего, отвечающего за вывод миниатюры в index.php

    • У меня вообще сайт перестал работать после ввода вашего кода в function.php
      function improved_trim_excerpt($text) {
      global $post;…
      попробовал восстановить сайт через резервную копию , а записи исчезли то есть нету статей и заголовк. что делать?

    • уфф….проблема решилась.сайт восстановил)))только вот скажи пожалуйста куда в function.php вставлять код(после каких кодов) вот этот:
      function improved_trim_excerpt($text) {
      global $post;
      if ( » == $text ) {
      $text = get_the_content(»);
      $text = apply_filters(‘the_content’, $text);
      $text = str_replace(‘]]>’, ‘]]>’, $text);
      $text = preg_replace(‘@<script[^>]*?>.*?</script>@si’, », $text);
      $text = strip_tags($text, ‘<p>,<br>,<h2>,<h1>,<em>’);
      $excerpt_length = 32;
      $words = explode(‘ ‘, $text, $excerpt_length + 1);
      if (count($words)> $excerpt_length) {
      array_pop($words);
      array_push($words, ‘ …’);
      $text = implode(‘ ‘, $words);
      }
      }
      return $text;
      }

      И еще как отключить excerpt?

      • Александр

        @МистерWP, рад что проблема решилась. Код вставляется после <?php
        Как отключить excerpt написано сразу после основной функции…

    • Евгений

      Александр, добрый день. Очень понравились Ваши объяснения. Помогите, пожалуйста. Как в рубрике http://www.avtoexpert.pro/category/strahovanie сделать перенос строк (1 строка — адрес, 2 — телефон, 3 — время работы и т.д.), а то все в одну строку. Целый вечер бьюсь, ничего не могу найти. Заранее большое Вам спасибо. Буду ждать ответа.

      • Александр

        @Евгений, если не получается сделать перенос строк в визуальном редакторе, попробуйте перейти в текст и после перед словом которое должно идти с новой строчки добавьте тег


        • @Александр, спасибо. Я по праве говоря, имел ввиду немного другое, но все равно спасибо, разобрался. Еще один вопрос, правда немного не в тему. Сайт лучше продвигать статьями или комментариями к статьям? Как-то давно сделал страницу сайта в стиле вопрос-ответ. Весь сайт давал трафик 150 человек, 130 из них только эта страница. Я тогда понятия не имел, что такое оптимизация. Ничего не оптимизировал, ПРОСТО написал и получил такой результат. Сейчас хочу получить нечто подобное от комментариев. Возможно ли это? Буду Вам признателен, если Вы, как профессионал, дадите развернутый ответ. Заранее спасибо.

          • Александр

            @Евгений, здесь(в коментах) развернутый ответ трудно дать…. А коротко, могу сказать, что лучше продвигать статьями. Комментарии уже не дают такого эффекта как раньше и поисковиками не сильно учитываются. По-прежнему актуальны ссылки, чтоб не говорили….

    • Подскажите пожалуйста, как в теме вордпресс «twenty thirteen» сделать вывод анонса, так, чтобы текст обтекал картинку расположенную слева? Никак не получается, картинка по центру, а ссылка с заголовком снизу.

      • Александр

        @Роман, так сделайте все как описано в этой статье и картинка будет слева…

        • @Александр, пробовал, не получается. Дело в том, что там код немного другой. В шаблоне одни функции. Картинку кое-как получилось сделать слева, но вот описание и заголовок ссылкой снизу, а мне необходимо сделать как описано у вас выше, т е слева от картинки.

    • Добрый день! Добавляю это в functions.php и сайт вообще перестает работать, куда именно его вставить правильно?

      function improved_trim_excerpt($text) {
      global $post;
      if ( » == $text ) {
      $text = get_the_content(»);
      $text = apply_filters(‘the_content’, $text);
      $text = str_replace(‘]]>’, ‘]]>’, $text);
      $text = preg_replace(‘@<script[^>]*?>.*?</script>@si’, », $text);
      $text = strip_tags($text, ‘<p>,<br>,<h2>,<h1>,<em>’);
      $excerpt_length = 32;
      $words = explode(‘ ‘, $text, $excerpt_length + 1);
      if (count($words)> $excerpt_length) {
      array_pop($words);
      array_push($words, ‘ …’);
      $text = implode(‘ ‘, $words);
      }
      }
      return $text;
      }
      remove_filter(‘get_the_excerpt’, ‘wp_trim_excerpt’);
      add_filter(‘get_the_excerpt’, ‘improved_trim_excerpt’);

      • Александр

        @Женя, это вставляется после <?php, пример работает на этом сайте…. если у вас не работает значит вы что-то сделали не правильно…. Еще при копировании может не правильно вставляться функция, меняются некоторые знаки, проверьте…

    • Здравствуйте!
      Просмотрел множество источников и только у вас нашёл полное описание вывода миниатюр с текстом.
      Помогите разобраться со стандартной темой Twenty Twelve (WP последней версии): в файле index.php темы отсутствует значение «the_content» и возник вопрос о том, в какое место следует вставлять приведённый вами код?
      Заранее благодарю за ответ.

      • Александр

        @Вадим, в этой теме есть файл content.php, так вот это в нем.

        • @Александр, Большое спасибо за ответ!
          Возник следующий вопрос. Этот код вставил и далее возникли сложности с файлом functions.php: в нём отсутствует функция «the_excerpt», пытался приведённый вами функцию «function improved_trim_excerpt» поставить поочерёдно в конец и в начало файла, но безуспешно: ссылки в анонсах остаются нерабочими… Подскажите, что делать. Заранее благодарю.

          • Александр

            @Вадим, не совсем понял, какие ссылки?

          • @Вадим, Имел в виду линки «Читать далее» не раскрывают посты, комментарии не показываются. С работающего сайта пришлось убрать.
            Вчера вечером ставил эксперимент на Денвере с новой установкой WP, то же самое повторилось (плагинов на Денвере нет никаких, чистая установка WP).
            Пробовал большой код («function improved…») ставить до и после «remove_filter…» в файл «content.php» тоже не помогло.
            Спасибо за ответ.

    • Спасибо за ответы. Решил проблему при помощи прописывания кода
      в постах. Получилось именно то, чего я и хотел добиться. Результат можете посмотреть на сайте ravik.su

      • Александр

        @Вадим, я сразу не понял, да, если нет ссылок приходится немного дополнять код, но это не связано с темой поста )) поэтому и не уточнял. Я прописывал код " >Продолжить чтение этой статьи » дополнительно…

        • @Александр, Спасибо за ответ. Возьму на вооружение на будущее. Хотя терзают меня сомнения в необходимости изменения кода, если можно коды прописать в постах и выставить индивидуальные размеры миниатюр к каждой записи

      • Александр

        @Вадим, да у вас все нормально сейчас. )

        • @Александр, Спасибо. И последний вопрос, не по теме поста. Если можно, ответ в двух словах. Вы используете в комментариях плагин антиспама не Akismet, а какой-то другой. Чем он лучше?
          Вопрос возник потому, что на старых моих сайтах боты обходили все плагины антиспама, которые я пытался выставлять. От ботов-роботов спас только Akismet

    • Вы даже не представляете, как Вы мне помогли!!!!! Танцую от счастья!

    • Добрый день. Просьба подсказать, как можно сделать, чтобы на сайте в анонсах статей выводились первые изображения из статей одинакового размера? Спасибо.

      • Александр

        @Leonard, для этого существуют специальные хаки wordpress, с использованием соответствующих скриптов… поищите в инете.

    • Александр, добрый день! У меня возникла неожиданно проблема:перестали показываться картинки на главной странице. В посте они есть. Нажимаю на » читать дальше», открывается пост, и там всё в порядке. Раньше такого не было. Что могло произойти? В чём причина? Помогите, пожалуйста. Заранее Вам благодарна. Извините за беспокойство. Мой сайт:http://uspehavsem.ru

      • Александр

        @Anna, у вас видимо не указана миниатюра в редакторе статей. Поэтому и не отображается на главной.

        • @Александр, я не пользовалась миниатюрами, а вставляла картинки из своей папки «картинки». До этих пор они отображались без проблем. Спасибо.

          • Александр

            @Anna, проанализируйте, что вы делали в последнее время с сайтом…. Обновления(установка) плагинов, движка или какие другие изменения.

    • Александр, большое вам спасибо за помощь. Уже во всём разобралась, всё в порядке. Вам — здоровья, всего самого доброго и светлого!!!!!!

    • Людмила

      Александр, я сменила шаблон на WP В прежнем была функция вывода миниатюр, были красивые картинки в анонсах одинакового размера. Новая тема не поддерживает эту функцию. Но в анонсах рядом с добавленными картинками появились пустые рамки, причем разных размеров. Там где были картинки удалены и были только миниатюры, просто пустые рамки. Ставила код add_theme_support(‘post-thumbnails’); но ничего не поменялось. Взгляните пожалуйста. Не хочется менять, очень уж необычный шаблон, у Гудвина нашла.

      • Александр

        @Людмила, у вас просто видимо в шаблоне не правильно прописан код-ссылка на картинку…

    • Людмила

      Да и еще содержание рубрики Новости куда-то исчезло. в общем беда да и только.

      • Александр

        @Людмила, здесь так же нужно смотреть, есть ли код в шаблоне для вывода описания рубрик.

    • @Александр,здравствуйте!У меня такая проблема,когда я задаю миниатюру она у меня выводиться не слева от текста а сверху по середине над ним, что делать?

      • Александр

        @Miks, нужно смотреть код вывода миниатюр и поправить его, видимо так задано у вас в шаблоне.

    • Добрый день!
      Подскажите пожалуйста как уменьшить размер от миниатюры до текста записи, вернее расширить текст и сдвинуть влево к картинке. Для наглядности ссылка http://tobaccoseeds.ru/category/action

      • Александр

        @Roman, вам нужно уменьшить значение отступа слева margin: 0px 0px 0px 320px; в файле стилей шаблона строка 1203

    • Первый сайт, на котором указана нужная информация, по данному вопросу. Все получилось. Спасибо.

    • Добрый день!У меня вопрос такой,имеется главная страница сайта (статическая) на странице есть миниатюра и хотелось бы справа от неё поместить небольшой текст.
      Подчёркиваю,просто текст,который всё время будет находиться рядом с миниатюрой и не является ссылкой.
      Перечитал уйму статей,но внятного и простого ответа не нашёл.На WordPress сайт создаю впервые,так что не судите строго если спрашиваю глупость.
      Заранее благодарю!

    • Валентина

      Здравствуйте Александр.
      Я у себя на сайте обновила версию темы Graphene , много настроек сбилось. Самое бросающееся в глаза это исчезли миниатюры из анонсов с главной страницы. У меня они сейчас на главной все анонсы разного размера с фотографией полного размера. Хотя в рубриках отображается всё так как нужно.
      В настройках медиафайлов у меня миниатюра задана 150 х 150. Попробовала в записи задать миниатюру, тоже не помогло.
      Прочитала Вашу статью, но не пойму вместо какой строки мне нужно вставить код. У меня в файле указанной Вами строчки нет. Вот мой файл index.php:

      Где здесь вставить код?

      • Александр

        @Валентина, видимо в вашей теме за вывод ленты постов отвечает другой файл, просто нужно найти какой….

    • А если я хочу чтоб отображалась только миниатюра, без текста. Миниатюра по нажатии на которую открывался соответствующий пост. Заранее спасибо

    • А какой именно index.php открывать? В какой папке? Никак найти тот самый не могу(

    • Александр

      Александр, добрый день! Подскажите, делаю все как в статье, но на главную помимо миниатюры выводится картинка в полном размере прямо перед заголовком. Хотя к записи прикрепляю только миниатюру через консоль и все…
      Или подскажите как изменить Ваш код по аналогии с этим:
      functions.php
      [code]function bloggood_ru_image() {
      global $post, $posts;
      $first_img = »;
      ob_start();
      ob_end_clean();
      $output = preg_match_all(‘//i’, $post->post_content, $matches); // выдираем первый имагес
      $first_img = $matches [1] [0];

      // Если картинка в посте отсутствует, тогда выводим изображение по умолчанию (указать путь и имя к картинке)
      if(empty($first_img)){
      $first_img = «/img/default.jpg»;
      }
      return $first_img;
      }[/code]

      index.php (в моем случае это content.php)
      [code]<img src="» alt=»» width=»250″/>[/code]

      Как сделать чтобы схема была как у Вас (текст обходил миниатюру справа и т.д.), но картинка бралась автоматом из первой добавленной к статье, новости и пр.? Как я указал в примере кода

    • Доброго времени суток.
      Сколько лет, а Ваша статья не потеряла актуальности. Я тоже воспользовался Вашим советом и всё получилось, но с двумя неприятными нюансами.
      1. Задал обтекание текстом справа, но если текста не много, то миниатюра «наезжает» на заголовок подлежащего анонса (даже не на, а под фон) и взаимодействует с ним, заставляя «обтекать» текст заголовка как и сам анонс, которому принадлежит миниатюра.
      2. Добавил код для вывода форматированного текста в анонс. В статьях всё просто замечательно, а вот в галереях в анонс прописался код самой галереи такого примерно вида
      #gallery-1 {
      margin: auto;
      }
      #gallery-1 .gallery-item {
      float: left;
      margin-top: 10px;
      text-align: center;
      width: 33%;
      }
      ну и дальше в том же духе.
      Пока я «код форматирования» убирать не стал — просто закомментил его «до выяснения».
      Хотелось бы узнать может у Вас уже есть готовое решение по исправлению этих проблемок?

      • Здравствуйте! По обтеканию картинки вот статья http://visionmax.ru/obtekanie-kartinki-tekstom/ чтоб картинка не наезжала ))
        В галереях, нужно смотреть, как выводятся анонсы? Может конфликт плагина галереи с шаблоном или еще что…

    • Валерий

      Здравствуйте Александр, подскажите никак не могу разобраться как в полной записи не выводить миниатюру, а только в анонсе? Если можно подробней.

      • Нужно просто в шаблоне записи файл single.php удалить код вывода миниатюры. В некоторых темах такая функция предусмотрена в настройках темы.Что-то типа этого 'alignleft'));?>

    • здравствуйте, а как в полной записи вывести миниатюру full на всю ширину колонки
      спасибо!

    • Автор, помогите пжста! Как сделать, чтобы заголовок был справа от миниатюры, а не сверху? Никто не знает.

    • Спасибо за долголетие (публикации) 🙂
      Возник вопрос: а если к публикации не имеется изображения (бывают и такие), как сделать, чтобы в миниатюре анонса было не пусто, а выводилась картинка по умолчанию?

    • Татьяна

      Александр, здравствуйте! Вроде как все понятно. Но у меня вообще странная проблема возникла. Все было хорошо. Вдруг пару дней назад такое: на Главной при загрузке сайта текст (анонс) на секунду возникает справа и тут же перемещается вниз — под миниатюру. Пыталась по вашей статье что-то исправить. Не получилось. В чем может быть проблема?

      • Татьяна, попробуйте отключить ваши плагины новогодних украшений, кажется они конфликтуют с темой….

        • Спасибо большое! Даже не подумала о таком: этот плагин на других сайтах стоит и без проблем. Все теперь на своих местах! 🙂

    • Александр

      Спасибо за хорошую статью. А можно ли сделать, чтобы картинка из анонса выводилась в полном размере на странице самой записи? Понимаю, что ковырять надо single.php, но не очень понимаю в каком ключе. Проблема в том, что макет адаптивный, на bootstrap, потому точные значения выставлять не очень хотелось бы.

      • Посмотрите вашу функцию вывода, попробуйте убрать размер миниатюры вообще(по аналогии с моим кодом) или поставить размер в процентах.

    • Владимир

      В статье нашел, как вставить миниатюру в анонс, а вкомментах — как убрать ее со страницы записи. Спасибо Вам!

    • Здравствуйте! У меня childtheme тема generatepress и там при добавлении записи есть возможность добавить изображение и это изображение появляется в анонсах. Но не всегда удобно добавить изображение таким образом, во первых это долго и во вторых перегружает хостинг. По этому я в записях вставлю изображение из других сайтов (copypaste),и дальше пишу свой текст, и когда сохраняю запись , в самой записи все отлично , но вывод записи на главной странице получается без изображении, но дело в том, что некоторые записи таким образом выводятся на главной с изображениями, а некоторые без изображении . Я не могу понять, в чем причина такой поведении , если отключена функция вывода изображении записи, тогда никакое изображение не должны выводится, но они выводятся на своё усмотрение, некоторые не выводятся, а некоторые выводятся на главной. Прошу подсказать, в чем дело?
      Например изображение этой записи не вышло на главную страницу https://www.rianovost.ru/belarus-buys-first-party-oil-from-saudi-arabia/
      А изображение этой записи вышло на главной
      https://www.rianovost.ru/sostoyalsya-telefonnyy-razgovor-putina-i-maduro/
      Такая же ситуация и с Open graph при «поделится» на соцсетях то выводится изображение, то нет, когда как)))
      В обеих случаях изображение не загрузил по форме «добавить изображение записи» А просто вставил в запись из других сайтов (copypaste)

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *