Webbell » WordPress хаки и советы » Вывод блока рубрик с сортировкой по дате публикации последних записей в WordPress
Правила Контакты Чтение RSS

Вывод блока рубрик с сортировкой по дате публикации последних записей в WordPress

У нас вы можете скачать бесплатно Вывод блока рубрик с сортировкой по дате публикации последних записей в WordPress .

Не пропустите комментарии к Вывод блока рубрик с сортировкой по дате публикации последних записей в WordPress.
Данный материал предоставлен сайтом Webbell.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Вывод блока рубрик с сортировкой по дате публикации последних записей в WordPress

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

Эту задачу вполне можно решить с помощью следующего php-кода.
<?php
// здесь указывается количество последних записей
$loop = new WP_Query('posts_per_page=30');
if ($loop->have_posts()) {
   // проходимся по каждой из выбранных записей
   while ($loop->have_posts()) { $loop->the_post();
     // получаем информацию о рубрике записи
     $category = get_the_category($loop->post->ID);
     // далее добавляем идентификатор рубрики в массив
     $array1[] = $category[0]->cat_ID;
   }
   // удаляем из массива повторяющиеся идентификаторы рубрик
   $array1 = array_unique($array1);
   // затем создаем второй массив, в котором нужно будет указать идентификаторы рубрик, из которых будут выводиться последние записи
   $array2 = array(1,10,45,107);
   // далее нужно сравнить эти два массива, чтобы в списке идентификаторов рубрик, которые были получены из 30 записей, находились указанные во втором массиве. Плюс ко всему, нужно создать новый массив, для сохранения сортировки рубрики по дате последней записи. 
   $array = array_intersect($array1, $array2);
}
// счетчик
$i = 0;
// запуск цикла, выводящего блоки рубрик
foreach ($array as $cat) { $i++;
  // получаем информацию о рубрике
   $category = get_category($cat);
?>
   <div class="column<?php /* добавляем класс .odd к каждому нечетному блоку рубрики */ if ($i%2 == true) echo ' odd'; ?>">
     <h2><?php echo $category->name; ?></h2>
   <?php
     // используем последние семь постов из рубрики
     $loop = new WP_Query('posts_per_page=7&cat=' . $cat);
   ?>
   <?php if ($loop->have_posts()) { ?>
     <ul>
     <?php
       // запуск цикла, который выводит последние записи из рубрики
       while ($loop->have_posts()) { $loop->the_post();
     ?>
       <li><?php the_time('d.m.Y') ?> <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
     <?php } ?>
   <?php } ?>
     </ul>
     <a href="<?php echo get_category_link($category->cat_ID); ?>">Все статьи рубрики "<?php echo $category->name; ?>"</a>
   </div><!-- .column -->
<?php } ?> 

Если вам нужно, чтобы осуществлялся вывод всех рубрик с сайта, то нужно внести некоторые изменения в вышеуказанный php-код. Для начала, нужно удалить следующие строки:
$array2 = array(1,10,45,107);
$array = array_intersect($array1, $array2); 

Затем осуществите замену этой строки:
$array1 = array_unique($array1); 

На следующую строку:
$array = array_unique($array1); 

Учтите то, что когда во втором массиве указывается конкретная рубрика, но блок не отображается, то скорее всего в списке последних 30 записей не было записей из этой рубрики. Попробуйте поставить большее число или добавить запись в необходимую рубрику.
Теперь необходимо немного подправить CSS-код и добавить несколько стилей, чтобы блоки показывались в два столбца:
.column {
   float: right;
   width: 50%;
}
.column.odd {
   clear: both;
   float: left;
}

Параметр width (ширина) можно указать такой, какой вам необходимо.



Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

«    Июль 2018    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
Яндекс Апдейты
↓ Апдейты Яndex тИЦ
18.11.2017 ←Последний
04.11.2017
16.08.2017
↓ Апдейты выдачи Яndexa
14.07.2018 ←Последний
12.07.2018
09.07.2018
↓ Апдейты ЯКаталога
16.01.2018 ←Последний
20.12.2017
15.12.2017
Мы рекомендуем
Заработай на сайте!
Gogetlinks-Биржа вечных ссылок для сайтов с Тиц
Getgoodlinks-Биржа вечных ссылок для сайтов с PR


Опрос на портале

Сколько у вас сайтов?

Больше 20 сайтов
От 10 до 20 сайтов
От 5 до 10 сайтов
От 1 до 5 сайтов
Нету сайтов

Наш архив
Облако тегов
ajax, Build, DataLife, dle, dle 9.0, dle 9.2, Engine, Final, Google, Opera, Release, RSS, WordPress, адаптация, административная панель, бесплатно, виджет, Игровой, кино, комментарии, модуль, новости, Новый, Оригинал, парсер, парсер поисковых систем yandex google рассылка комментариев по DLE Joomla Community спаммер раскрутк, Переходы, плагин wordpress, сайта, сайтов, сбор данных телефонов адресов email контактов потенциальные клиенты BlackSpider универсальный сборщи, тема, тематики, универсальный, хак, хак wordpress, Шаблон, шаблона, Яндекс

Показать все теги
Последние комментарии
Популярные файлы

Информация!
Уважаемый посетитель! Присоединяйтесь к нам
в Твиттере.