Создание Сайтов и их настройка

WordPress Похожие новости WordPress с картинкой и описанием, без плагинов.

Похожие новости WordPress с картинкой и описанием, без плагинов.

Добро пожаловать, друзья, на блог для начинающих вебмастеров. Сегодня, я хочу развить тему прошлого поста о похожих новостях для статьи. Только, сегодня, мы посмотрим, как вывести похожие новости для WordPress без плагина. Причем вывод мы сделаем с картинками и с описаниями, как это сделали для dle. Конечно, для wordpress существует множество различных плагинов, которые могут облегчить жизнь в этом деле, но мы ведь не ищем легких путей, да и лишние плагины нам не к чему, когда можно все сделать и без них.

Похожие новости WordPress с картинкой и описанием.

Содержание:
Вывод похожих постов wordpress с картинками из категории.
Вывод похожих постов wordpress с картинкой из меток (тегов).
Похожие новости wordpress с картинкой из меток (тегов), без плагинов.(Обновление от 13.07.2013)
Вывод похожих постов wordpress с картинкой и описанием.
Вывод похожих постов wordpress с картинками и описанием (второй способ).

Вывод похожих постов wordpress с картинками из категории, без плагинов

Чтобы вывести похожие новости, достаточно добавить код в файл singe.php (одна запись). Куда добавлять код, это уже полет вашей фантазии, но обычно код прописывается после статьи, то есть после:

<?php the_content(); ?>

Вот код, после вставки, которого, у вас под статьей начнут отображаться похожие новости wordpress.

<div class="related_posts">
<h3>Ваш заголовок для блока с похожими постами</h3>
<?php
$categories = get_the_category($post->ID);
if ($categories) {
 $category_ids = array();
 foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
 $args=array(
 'category__in' => $category_ids,
 'post__not_in' => array($post->ID),
 'showposts'=>3,
'orderby'=>rand,
 'caller_get_posts'=>1);
 $my_query = new wp_query($args);
 if( $my_query->have_posts() ) {
 echo '<ul>';
 while ($my_query->have_posts()) {
 $my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><div id="box-cel"><?php the_post_thumbnail(array( 150,150 )); ?><br><?php the_title(); ?></div></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();
}
?></div>

Данный код будет выводить список похожих новостей из этой же рубрики, в которой находится новость. Конечно, можно сделать и по другому, например, чтоб выводился список из использованных в статье тегов. Но  все же, я склоняюсь к такому выводу, потому что выводить похожие посты wordpress из категории, на мой взгляд правильнее, нежели из тегов. Хотя, вы можете считать по другому.

Что вы можете поменять в этой структуре на свой лад?

'showposts'=>3,

Данная строка отвечает за количество похожих сообщений. То есть, если цифра будет пять, а не три, то выводиться будет пять постов.

<?php the_post_thumbnail(array( 150,150 )); ?>

Здесь вы можете заменить размер миниатюры на свой. Сейчас, он равен 150 пикселям, по обоим сторонам.

Похожие новости wordpress с картинкой из меток (тегов), без плагинов

Все же, покажу вывод из тегов. Вдруг кому-нибудь пригодится. Здесь все просто. Берете код, который предназначен для вывода с помощью рубрик. Находите в нем такую строку:

'category__in' => $category_ids,

И заменяете ее на:

'tag__in' => $tag_ids,

И все, с этого момента, похожие новости wordpress будут выводиться из меток.

После добавления кода вывода похожих новостей в код вашего шаблона. Должно выглядеть примерно так:

 Вывод похожих постов wordpress с картинками

Как видите — приемлемо, но можно сделать лучше. Например, прописать в css, следующие стили:

.related_posts{
width: 580px;
height: 300px;}
.related_posts ul li{
height: 205px;
border: 1px solid #C3B17F;
border-radius: 3px;
float: left;
list-style: none;
margin: 1px;
padding: 15px;
text-align: center;
width: 158px;
overflow: hidden;}
.related_posts ul li:hover {
background:#F9E9C2;
border: 1px dashed #39B6F9;
}

И тогда данный блок станет выглядеть вот так:

Вывод похожих постов wordpress с картинкой

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

Похожие новости wordpress с картинкой из меток (тегов), без плагинов.(Обновление от 13.07.2013)

Обновление связано с тем, что предыдущий вариант кода возможно не правильно выводит похожие записи wordpress из тегов (меток). Поэтому, если у кого-то есть проблемы с правильным выводом постов, попробуйте предложенный ниже вариант кода. Надеюсь на обратную связь.

<?php
$orig_post = $post;
global $post;
$tags = wp_get_post_tags($post->ID);

if ($tags) {
echo '<div class="related_posts"><h4>Похожие статьи</h4>';
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=>6,
'caller_get_posts'=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><div id="box-cel"><?php the_post_thumbnail(array( )); ?><?php the_title(); ?></div>
</a></li>

<?php
}
echo '</ul></div>';
}
wp_reset_query();
}
?>

В этом варианте кода использован такой же вывод похожих статей. За исключением того, что не использован рандомный вывод. Также, как и в предыдущем варианте, есть возможность изменить количество выводимых новостей в строке:

'posts_per_page'=>6,

Просто поменяйте числовое значение на нужное. То есть цифру шесть.

Похожие посты wordpress с картинкой и описанием, без плагинов

Еще, похожие статьи, можно вывести не только с картинкой и названием, но и с описанием. В прошлой статье, о похожих новостях dle, была просьба показать примерно такой же вывод, то есть с описанием, но для wordpress.

На самом деле, для того, чтобы вывести описание, достаточно просто дописать нашу конструкцию. И самый простой варианта, это добавить:

<?php the_excerpt(); ?>

Тогда наш код станет выглядеть так:

<div class="related_posts">
<h3>Ваш заголовок для блока с похожими постами</h3>
<?php
$categories = get_the_category($post->ID);
if ($categories) {
 $category_ids = array();
 foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
 $args=array(
 'category__in' => $category_ids,
 'post__not_in' => array($post->ID),
 'showposts'=>3,
'orderby'=>rand,
 'caller_get_posts'=>1);
 $my_query = new wp_query($args);
 if( $my_query->have_posts() ) {
 echo '<ul>';
 while ($my_query->have_posts()) {
 $my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><div id="box-cel"><?php the_post_thumbnail(array( 150,150 )); ?><br><?php the_title(); ?></div></a></li><?php the_excerpt(); ?>
<?php
}
echo '</ul>';
}
wp_reset_query();
}
?></div>

При добавлении данной функции, у нас начнет выводиться наша цитата. Которая будет обрезаться по умолчанию после 55 слов и заканчиваться она будет так: […] Данное описание вы можете заполнять сами, при добавлении новости. Для этого достаточно в настройках экрана, поставить галочку, рядом с пунктом «цитата» и при написании статьи, заполнять  поле. Если вас не устраивает, что цитата расчитана на 55 слов, а вам нужно меньше, то это так же поправимо. Для того, чтобы обрезать описание на необходимом количестве слов, достаточно добавить  в файл functions.php фильтр. Выглядит он так:

function new_excerpt_length($length) {
 return 20;
}
add_filter('excerpt_length', 'new_excerpt_length', 99999);

Где «20» — это количество слов после которого описание будет обрезано. 99999 — это приоритет перед различными плагинами, которые могут использовать данную функцию. И выглядеть это будет так:

Вывод похожих постов wordpress с картинкой и описанием.

Остается только поиграть со стилями. Кстати, если поле «цитата» не будет заполнено, то будет выводится первые 20 слов из самой статьи. И учтите, что если вы добавите фильтр на 20 слов, то на страницах категорий, описание также будет обрезано.

Похожие статьи wordpress с картинками и описанием, без плагинов (второй способ)

Есть еще один способ добавления описания, для похожих новостей. И в этом случае, описание будет браться из meta-описания вашей статьи, если вы используете плагин All In One SEO Pack и заполняете поле с описанием, то описание будет взято именно оттуда. А если поле с описанием не будет заполнено, то будет выведена надпись об этом.

Вывод похожих постов wordpress с картинками и описанием (второй способ).

Итак, чтобы сделать вывод описания из meta, нужно взять наш изначальный код и найти, например, закрывающий тег li (вы можете поэкспериментировать, куда добавить описание):

</li>

И после, добавить:

<?php
$my_descr = get_post_meta($post->ID, "_aioseop_description", true);
if ($my_descr){
echo "$my_descr";
}
else echo "Нет описания для данной страницы ";
?>

Вот и все, теперь остается только отредактировать стили css. Например,  можно сделать так:

Вывод похожих постов wordpress с картинками и описанием

Для этого, после:

else echo "Нет описания для данной страницы ";
?>

Добавить:

<hr>

И в стили css (style.css), добавить:

hr{
clear: both;
border: 1px solid #C3B17F;}
#box-cel img{
float: left;
margin: 0 10px 10px 0;}

И все.

На этом, я сегодня буду заканчивать. Кто в чем-то не разобрался, спрашивайте в комментариях. И не забывайте ставить лайки и плюсы, если вам помог данный пост.

Удачи, друзья!

UPD: ВНИМАНИЕ! Уважаемые, друзья! Просьба сообщать в комментариях, если какой-то код не работает. При этом сообщайте, пожалуйста, версию вашего движка. Это поможет сделать статью лучше, и при этом позволит избежать различных проблем и ошибок. Заранее благодарю.

Расскажи друзьям:
Поделись ссылкой:
Комментарии
  1. Майя

    Здравствуйте, Михаил, а что изменить, чтобы был не один горизонтальный ряд, а два, например?

    Ответить
  2. Михаил Веб

    @ Денис: Честно говоря не знаю. Не задавался подобным вопросом. Скорее всего можно. Но как это правильно осуществить — увы, не знаю.

    Ответить
  3. Денис

    Добрый вечер!!!
    Очень полезная и интересная статья, очень пригодилась!!!
    Но можно ли как то встроить код, который выводит похожих посты wordpress с картинками из категории, в файл functions.php, в виде шорткода, что бы была возможность вставлять этот шорткод в любое место записи?
    За ранее спасибо!!!

    Ответить
  4. Дмитрий Полезный

    @ Михаил Веб:
    Спасибо, учту ваши рекомендации.

    Ответить
  5. Михаил Веб

    @ Дмитрий Полезный: Да, действительно перелинковки в данном случае не будет. И от поисковых систем, в данном случае, данный блок лучше закрыть от индексации и к ссылкам добавить атрибут nofollow, чтобы поисковики не ругались на постоянно меняющиеся адреса на странице. Тогда отношение ПС должно остаться прежним к ресурсу.
    Удачных экспериментов. Спасибо за оценку статьи.

    Ответить
  6. Дмитрий Полезный

    Что особенно понравилось, так это то, что записи выводятся в случайном порядке. Для воздействия на посетителя — это большой плюс. Правда, перелинковки в таком случае не будет. И, как следствие, может это не понравиться поисковым роботам. Однако, я поэкспериментирую (раньше выводились статически последние 5 статей из той же катерогии) и месяца через 2 можно будет сделать вывод.
    Ps: Статья на твердые 5 баллов.

    Ответить
  7. Михаил Веб

    @ Простой: Миниатюры — нет, нельзя. Но можно организовать автоматическое назначение миниатюр.
    Подробнее читайте здесь: http://sdelaemblog.ru/miniatyuri-wordpress/

    Ответить
  8. Простой

    А можно ли сделать, чтобы миниатюры выводились из всех статьей — даже из тех в которых мы их не присваивали?

    Ответить
  9. Михаил Веб

    @ Дмитрий: Не за что. Да, он отвечает за цикличность постов, но он работает по типу index.php на сколько я помню, хотя могу ошибаться.

    Ответить
  10. Дмитрий

    Спасибо большое за хорошую подсказку для новичка.

    Правда, у меня в моей теме для WordPress не было файла single.php, а был файл loop.php который как я понимаю, отвечает за цикличность вывода постов. Пришлось вставлять в него, но при вставке кода, похожие посты стали отображаться повсюду, но все же я нашел место, куда вставить этот код.
    Еще раз спасибо.
    Место куда пришлось вставлять(до сих пор не знаю правильное место или нет, но все работает):

    Ответить
  11. Михаил Веб

    @ кристина: Всегда, пожалуйста.

    Ответить
  12. кристина

    все очень здорово получилось, спасибочки! :smile:

    Ответить
  13. Михаил Веб

    @ кристина: Не беда, это мы поправим. Не за что.

    Ответить
  14. кристина

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

    Ответить
  15. Михаил Веб

    @ Вова: Проверил. Доступ восстановил бесплатно. Google просто выслал на запасной ящик ссылку, по которой я поменял пароль и все, доступ был восстановлен. Поэтому, у вас что-то другое просит денег.

    Ответить
  16. Вова

    @ Михаил Веб:
    Может и вирус, но адрес в строке браузера верный был, именно от google… Конечно я не стал никаких данных пересылать… Да и Касперский у меня вроде лицензионный стоит, регулярно обновляемый. И дело в том, что, все вопросы они задавали через web-интерфейс гугла, а затем написали, типа введите наиболее часто используемый e-mail, мы вам вышлем письмо. И вправду выслали, в нем ссылка, по ссылке перешел, адрес опять верный… там и спросили доп. данные (типа расскажите о своем аккаунте, где, да что, да когда….) и номер карты и снова кнопка перехода на следующую страницу…

    Ответить
  17. Михаил Веб

    @ Вова: Не верю я, что google просит деньги за восстановление почты и вам не советую, и не давайте никаких данных, особенно о карте, я думаю, что это и не гугл вовсе, а вирус у вас на компьютере. Кстати, проверил только что — никаких денег google не просит. Будьте внимательны и аккуратны.

    Ответить
  18. Вова

    @ Михаил Веб:
    Googl-овцы совсем обнаглели, требуют анкету заполнить, чуть-ли не завещание, а еще не поверите — $1 за восстановление аккаунта, причем они планируют списать этот доллар со счета моей банковской карты, ппц ващпе!

    Ответить
  19. Михаил Веб

    @ Вова: Не за что. Может в спам попало — такое бывает.

    Ответить
  20. Вова

    @ Михаил Веб:Спасибо большое! Письмо от Вас дошло, а SmartResponder чегой-то достучаться не может до Yahoo….

    Ответить

Нажимая на кнопку "Комментировать" Вы согласшаетесь с условиями политики конфиденциальности

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

Навигация по статье
Как добавить форму поиска на сайт wordpress?

Сегодня я расскажу, как добавить форму поиска на сайт wordpress без использования виджетов, если она отсутствует. Ведь с помощью виджетов поиск по сайту можно поставить только в боковую колонку (сайдбар), но это не всегда то место, где хотелось бы видеть форму поиска. Поэтому сегодня мы разберем вопросы: как быстро определить будущее местоположение в самом коде темы и конечно же как добавить поиск в нужное место на сайте вордпресс.

Как добавить форму поиска на сайт wordpress?

Тег more — как редактировать ссылку читать далее на wordpress

Вывод тега more на wordpress в том виде, в котором нужно вам, а не по умолчанию. Вместо надоевшего «Читать Далее» можно написать любой текст, вплоть до уникального текста ссылки, для каждой статьи. Кроме этого можно изменить сам внешний вид и расположение тега more на wordpress. При этом, от Вас не потребуется никаких знаний — нужно всего лишь прочитать пост и будет Вам счастье.

Тег more — как редактировать ссылку читать далее на wordpress

Как включить смайлики wordpress и заменить на свои?

Сегодня не увидишь сайтов, которые не использовали бы на своих страницах смайлы. Ведь именно эти эмоциональные картинки добавляют прилив динамики на сайт и посетители могут высказать свои эмоции, которые довольно сложно передать словами. Но не каждый, особенно начинающий, вебмастер знает, что смайлики есть даже на движке wordpress. Просто для их вывода нужно добавить небольшой php-код…

Как включить смайлики wordpress и заменить на свои?