Вообщем нужно чтоб на странице каждой рубрики выводился список тегов определенной рубрики.
То есть если мы находимся на странице рубрики под названием "Природа" - должны отображаться все теги (метки) из этой рубрики. А если мы находимся на странице рубрики под названием "Машины" - по аналогии с выше, только не должны видеть метки из других категорий.
Я нашел вот такое решение:
Этот код вставляется в functions.phpPHP код:След код вставляем в archive.php
function keengo_tag_cloud( $args = '' ) {
// Стандартные параметры функции
$defaults = array(
'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'category' => 1
);
$args = wp_parse_args( $args, $defaults );
global $wpdb;
// Получаем ID таксономии выбранной категории и по нему получаем все посты
$keengo_category = $args['category'];
$keengo_term_taxonomy_id = $wpdb->get_var("SELECT term_taxonomy_id FROM $wpdb->term_taxonomy WHERE term_id = $keengo_category AND taxonomy = 'category' ");
$keengo_posts = $wpdb->get_results("SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id = $keengo_term_taxonomy_id ", ARRAY_A);
// Преобразовываем полученные ID постов в строку
$keengo_post_IDs_array = array();
foreach ( $keengo_posts as $keengo_post ) {
$keengo_post_IDs_array[] = $keengo_post['object_id'];
}
$keengo_post_IDs = implode(',', $keengo_post_IDs_array);
// Получаем список тегов для выбранных из категории постов
$keengo_metas_array = $wpdb->get_results("SELECT term_taxonomy_id, count(object_id) FROM $wpdb->term_relationships WHERE object_id IN ($keengo_post_IDs) GROUP BY term_taxonomy_id ", ARRAY_A);
$keengo_metas = array();
$count_max = 0;
$count_min = 1000000;
// Для каждлго тега находим название, ссылку, количество
foreach ( $keengo_metas_array as $meta_key => $keengo_meta ) {
$keengo_meta_term_taxonomy_id = $keengo_meta['term_taxonomy_id'];
$keengo_taxonomy = $wpdb->get_var("SELECT taxonomy FROM $wpdb->term_taxonomy WHERE term_taxonomy_id = $keengo_meta_term_taxonomy_id ");
if ( $keengo_taxonomy == 'post_tag' ) {
$keengo_term_id = $wpdb->get_var("SELECT term_id FROM $wpdb->term_taxonomy WHERE term_taxonomy_id = $keengo_meta_term_taxonomy_id ");
$keengo_term_name = $wpdb->get_var("SELECT name FROM $wpdb->terms WHERE term_id = $keengo_term_id ");
$keengo_metas[$keengo_term_name]['link'] = get_tag_link($keengo_term_id);
$keengo_metas[$keengo_term_name]['count'] = $keengo_meta['count(object_id)'];
if ( $keengo_meta['count(object_id)'] > $count_max ) {
$count_max = $keengo_meta['count(object_id)'];
}
if ( $keengo_meta['count(object_id)'] < $count_min ) {
$count_min = $keengo_meta['count(object_id)'];
}
}
}
// Сортируем полученный массив
ksort($keengo_metas);
// Формируем вывод тегов с указанием размера шрифта для наглядности
$count_delta = $count_max - $count_min;
$size_min = $args['smallest'];
$size_max = $args['largest'];
$size_delta = $size_max - $size_min;
foreach ( $keengo_metas as $name => $meta ) {
$size = $size_min + $size_delta * ($meta['count'] - $count_min) / $count_delta;
echo('<a href="'.$meta['link'].'" style="font-size: '.$size.$args['unit'].'">'.$name.'</a> ');
}
}
PHP код:А этим кодом мы собственно и выводим метки определенной рубрики, которую указываем
if ( function_exists('keengo_tag_cloud') ){
$args = array(
'smallest' => 12
,'largest' => 18
,'unit' => 'px'
,'category' => 5
);
keengo_tag_cloud( $args );
}
PHP код:Но почему то у меня показывается метки определенной рубрики во всех категориях...
,'category' => 5
---------------------------------------HELPPP------------------------------------------------
Вывод всех Тегов определенной рубрики на самой странице рубрики
(Ответов: 0, Просмотров: 451)
- 28.01.2016 18:23
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Вывод последней записи из каждой рубрики и принудительный вывод | WordPress | 0 | 20.06.2015 04:46 |
Как сделать меню для определенной рубрики в Wordpress и к постам в ней? | WordPress | 1 | 02.04.2014 17:54 |
Как скрыть записи из определённой рубрики WordPress | WordPress | 4 | 07.05.2013 11:36 |
Запрет к индексации определенной рубрики в WordPress | WordPress | 7 | 11.08.2012 23:46 |
Как скрыть записи из определённой рубрики | Web программирование | 3 | 04.06.2012 16:05 |