Поддержка Проблемы и решения Как вывести случайную рубрику?

  • Нужно вывести случайную рубрику

    query_posts(”cat=-x,y,″)
    x = ID категории
    y = случайное существующие ID категории не равно х

    Как это реализовать? Может есть другие способы или плагины?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • ну если x и у известны то с помощью php удалить x и потом извлечь случайное значение
    например $arr_cat хранит все id категорий включая категорию x

    <?php
    array_rand();
    $key = array_search($x, $arr_cat );
    unset( $arr_cat[$key] );
    $y = $arr_cat[array_rand($arr_cat)];
    ?>

    <?php query_posts('tag=whatever&showposts=5&offset=0&orderby=rand'); ?>
    	<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    	<li>
    		<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    	</li>
    	<?php endwhile; endif; ?>

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

    если конкретно по рубрикам сделать, то можно так

    <?php
    // показать 5 случайных рубрик
    $cats ='';
    $categories=get_categories();
    $rand_keys = array_rand($categories, 5);   //кол-во рубрик для вывода, число должно быть меньше, чем реально рубрик на сайте
    foreach ($rand_keys as $key) {
    $cats .= $categories[$key]->term_id .',';
    }
    wp_list_categories('title_li=5 Random Categories&hierarchical=0&hide_empty=0&show_count=1&include='.$cats);  //если смените кол-во рубрик, смените заголовок тоже
    ?>

    <?php query_posts('tag=whatever&showposts=5&offset=0&orderby=rand'); ?>
    	<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    	<li>
    		<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    	</li>
    	<?php endwhile; endif; ?>

    Это запрос по тегу и вывод 5 случайных записей по сортировке

    <?php
    // показать 5 случайных рубрик
    $cats ='';
    $categories=get_categories();
    $rand_keys = array_rand($categories, 5);   //кол-во рубрик для вывода, число должно быть меньше, чем реально рубрик на сайте
    foreach ($rand_keys as $key) {
    $cats .= $categories[$key]->term_id .',';
    }
    wp_list_categories('title_li=5 Random Categories&hierarchical=0&hide_empty=0&show_count=1&include='.$cats);  //если смените кол-во рубрик, смените заголовок тоже
    ?>

    Вывод категорий а не записей из категорий.

    ну если x и у известны то с помощью php удалить x и потом извлечь случайное значение
    например $arr_cat хранит все id категорий включая категорию x

    <?php
    array_rand();
    $key = array_search($x, $arr_cat );
    unset( $arr_cat[$key] );
    $y = $arr_cat[array_rand($arr_cat)];
    ?>

    х — известен у — надо как то запросить из бд

    Пока не получилось разобраться…

    Это запрос по тегу и вывод 5 случайных записей по сортировке

    а если заменить tag=whatever на category_name=whatever (где name имя категории) тогда запрос будет по категории
    showpost можно изменить на любое значение

    Вывод категорий а не записей из категорий.

    значит я вас неправильно понял — я то думал вам случайную категорию надо получить
    вместо 5 можно всего 1 получить, и вместо вывода категории под нее вывод постов сделать не так уж и трудно… выбирать путь вам конечно..

    Когда стала свои две статьи распределять по рубрикам, у второй статьи оказалась одна рубрика (правильная), а у первой — две. Как убрать неправильную рубрику у статьи. Спасибо.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Как вывести случайную рубрику?» закрыта для новых ответов.