Поддержка Проблемы и решения Порядок вывода постов в WP

  • Решено lavelas777

    (@lavelas777)


    Уже отчаялся. Перерыл весь инет!( мне нужно изменить порядок вывода постов на свой, например по рейтингу или просмотрам. Просто непредставляю как это можно сделать! Чтобы изменить порядок исп-ся query_posts(), у которого
    orderby
    author — сортировка по ID авторов.
    date — сортировка по дате публикации.
    title — сортировка по заголовку.
    modified — сортировка по дате изменения.
    menu_order — стандартно используется для страниц и вложений.
    parent — сортировка по значению поля parent.
    ID — сортировка по ID.
    rand — случайный порядок.
    meta_value Важно: параметр meta_key так же должен быть определен. Заметка: сортировка будет алфавитной и будет не логична, если значения
    произвольных полей числа (будет, например, так 1, 3, 34, 4, 56, 6 и т.д., а не 1, 3, 4, 6, 34, 56).
    meta_value_num — сортировка по произвольным полям значения которых являются числами.
    none — не сортировать, выводить прям как находиться в БД. равносильно сортировке по ID.
    comment_count — сортировка по количеству комментариев.

    Проблема в том что число просмотров или рейтинг поста храниться в другой таблице. Соответсвенно такой способ не подходит.
    Подскажите что делать?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • даже если
    query_posts(array(‘post__in’ => array(35, 1, 3, 5, 89,228,231,224), ‘orderby’ => ‘none’)); он всё равно их сортирует по ID

    Модератор Yuri

    (@yube)

    Подскажите что делать?

    Вешать на хуки ‘posts_join’, ‘posts_orderby’ и т.д. свои обработчики, чтобы запрос получился такой, какой Вам нужен. Либо прямо в шаблоне прописать полный запрос к БД.

    даже если
    query_posts(array(‘post__in’ => array(35, 1, 3, 5, 89,228,231,224), ‘orderby’ => ‘none’)); он всё равно их сортирует по ID

    Он (кстати, знаете, кто он?) их не сортирует, а выводит как есть.

    соглашусь,этот дьявол) их не сортирует а жаль я бы хоть перестал мучаться) благодарю за ответ 🙂 полез исправляться и совершенствоваться)

    Модератор Yuri

    (@yube)

    Не дьявол, а демон — mysqld 😉

    злодей и главный волшебник 😀

    http://buraevopress.ru/vse-zapisi тут у меня создана сортировка…вот код

    <?php
    /*
    Template Name: oll
    */
    ?>
    <?php get_header(); ?>
    <tr>
    <?php
    $order = "showposts=100&orderby=date&order=DESC";
    $s2 = ' selected="selected"';
    if ($_POST['select'] == 'title') { $order = "showposts=100&orderby=title&order=ASC"; $s1 = ' selected="selected"'; $s2 = ''; }
    if ($_POST['select'] == 'newest') { $order = "showposts=100&orderby=date&order=DESC"; $s2 = ' selected="selected"'; }
    if ($_POST['select'] == 'oldest') { $order = "showposts=100&orderby=date&order=ASC"; $s3 = ' selected="selected"'; $s2 = ''; }
    if ($_POST['select'] == 'modified') { $order = "showposts=100&orderby=modified"; $s4 = ' selected="selected"'; $s3 = ''; }
    ?>
    <td style="float:left;">
    <i style="color:#666;padding:0 5px;line-height:19px;">Сортировать:</i>
    </td>
    <td style="float:left;">
    <form method="post" id="order" style="float:left;">
    <select name="select" onchange='this.form.submit()' style="width:200px;border:1px solid #ccc;height:21px;">
    <option value="title"<?=$s1?>>по заголовку</option>
    <option value="newest"<?=$s2?>>по дате (сначала новые)</option>
    <option value="oldest"<?=$s3?>>по дате (сначала старые)</option>
    <option value="modified"<?=$s4?>>по дате изменения</option>
    </select>
    </form>
    </td>
    <td style="float:left;">
    <i style="color:#666;padding-left:5px;line-height:19px;">показаны последние 100 записей</i>
    </td>
    </tr>
    <tr>
    <?php query_posts($order); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    		<td class='oll'>
    			<a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
    		    <?php echo kama_thumb_img ('w=60 &h=60 &class=alignleft myimg &q=100'); ?><?php the_title(); ?>
                </a>
    		</td>
            <?php endwhile; else: ?>
    <?php endif; ?>
    <?php wp_reset_query();?>
    </tr>
    <?php get_footer(); ?>
Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Порядок вывода постов в WP» закрыта для новых ответов.