Сортировка категорий для сайта на WordPress - решение проблемы
Приветствую всех. Появилась минутка свободного времени и сразу же решил написать в наш корпоративный блок на сайте. Очень часто видим в Сети, что многие разработчики сайтов на WordPress сталкиваются с такой проблемой, как невозможность отсортировать категории и вывести их нестандартно в коде сайта. Наши программисты решили эту проблему и поэтому решили поделиться этим решением с вами. Итак, что мы имеем на входе: есть подкатегории некой категории сайта (мы взяли сайт нашего клиента - desire.com.ua) и на его примере решили показать и рассказать о решении проблемы. В общем есть подключенный плагин My Category Order и в админке уже отсортированы категории. Их необходимо вывести в нужном месте (на нужной странице, в нашем случае) и в нужном нам виде. Не буду вас томить и сразу покажу код:$categories = get_categories(array('child_of' => '6','hierarchical' => 'false')); foreach($categories as $key => $item) { $temp_data[$key] = $item->term_order; } asort($temp_data);?> <?foreach($temp_data as $temp_key => $item):?>И вот так это выглядит у нас: Давайте разбирать код для сортировки категорий на сайте wordpress. Первая строка - $categories = get_categories(array('child_of' => '6','hierarchical' => 'false')); Эта строка получает все подкатегории некой категории (в нашем случае ее ID = 6). 'hierarchical' => 'false' - подразумевается, что иерархию мы нивелируем. Следующая часть кода:<?php $args = array(<?php echo $categories[$temp_key]->name;?>
<?=$categories[$temp_key]->description;?>
'order' => 'DESC',
'orderby' => 'date',
'category_name' => $categories[$temp_key]->slug,
'posts_per_page' => '100'
);
query_posts($args);
while ( have_posts() ) : the_post();?>
<?php get_template_part( 'content', 'services' );?>
<?php endwhile;
wp_reset_query();
?>
foreach($categories as $key => $item) { $temp_data[$key] = $item->term_order; }выполняет следующую роль - мы создаем временным массив, который содержит лишь нужные нам ключи для сортировки. В нашем случае это 'term_order'. После создания массива, мы сортируем его по возрастанию функцией asort(). После этого следует вывод подкатегорий согласно ключам отсортированного массива. За вывод отсортированных категорий woprdress у нас отвечает конструкция foreach:
<?foreach($temp_data as $temp_key => $item):?> echo $categories[$temp_key]->name; <?endforeach;?>Соответственно необходимый нам на данном этапе элемент массива категории доступен, как экземпляр класс и выглядит так $categories[$temp_key]. Чтобы получить нужное нам значение следует лишь указать нужное поле для вывода: к примеру, $categories[$temp_key]->name. Дальнейшие манипуляции с выводом данных можно производить какие угодно. Поставленная задача - достигнута. Наши подкатегории отсортированны. Также хотел напомнить, что мы создаем сайты не только на WordPress, но и на многих других CMS и собственных разработках индивидуально для каждого клиента. Обращайтесь - будем рады сотрудничеству.
С уважением, Матыцын Константин.
Компания Art-IT.
Также мы хотим предложить ознакомиться с нашими услугами, среди которых:
PLAY