Вывод постов по алфавиту

(Ответов: 5, Просмотров: 7630)
  1. Гуру Аватар для dev1
    • Регистрация: 18.01.2012
    • Сообщений: 829
    • Репутация: 273
    • Webmoney BL: ?
    Нужно сделать вывод постов таким способом. То есть типо сортировка по буквам.
    Нашел решение но только для тегов. Как адаптировать для постов что то не могу придумать. Кот может подскажите.

    Код для тегов

    PHP код:
    <div id="content">
     
        <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
     
            <div id="post-<?php the_ID(); ?><?php post_class(); ?>>
     
                <div class="hentry-meta">
                    <h1><?php the_title(); ?></h1>
                </div>
     
                <div class="hentry-content clear">
                    <div class="tags">
                        <?php
                            $tags 
    get_tags('orderby=name&order=ASC');
                            
    $capital '';
                            
    $i 0;
                            
    $cols_number 4// Количество колонок
                            
    $cut ceilcount($tags)/$cols_number );
                            
    $cutter $cut;
                            
    $letter_i 0;
                            
    $output '<div class="column">';
                            foreach ( 
    $tags as $tag ) {
                                
    $i++;
                                
    $firstletter mb_substr($tag->name01);
                                if ( 
    $firstletter !=  $capital ) {
                                    
    $letter_i++;
                                    if ( 
    $letter_i != $output .= '</ul>';
                                    if ( 
    $i $cutter ) {
                                        
    $output .= '</div><div class="column">';
                                        
    $cutter $cutter $cut;
                                    }
                                    
    $capital $firstletter;
                                    
    $output .= '<h4>' $capital '</h4><ul>';
                                }
                                
    $term get_term_by('id', (int)$tag->term_id'post_tag');
                                
    $output .= '<li><a href="' get_term_link( (int)$tag->term_id'post_tag' ) . '">' $tag->name '</a> (' $term->count ')</li>';
                            }
                            echo 
    $output '</ul></div>';
                        
    ?>
                    </div>
                </div>
     
            </div> <!-- .page -->
    [свернуть]
    • 0
  2. Дипломник Аватар для ZCFDDD
    • Регистрация: 01.06.2012
    • Сообщений: 104
    • Репутация: 6
    посмотри WP Post Sorting. Обновлялся он, правда, давно. Но в сети есть упоминания, что с 2,9 он работал

    если даже он не работает с новым WP, то в нем есть код, который тебе нужен

    P.s. и загляни на _http://wordpress.org/extend/plugins/tags/sort
    • 1

    Спасибо сказали:

    dev1(07.07.2012),
  3. Гуру Аватар для dev1
    • Регистрация: 18.01.2012
    • Сообщений: 829
    • Репутация: 273
    • Webmoney BL: ?
    ZCFDDD, там корректировать кода еще больше чем в моем исходнике
    а сортировку лучше сделать без плагина.
    • 0
  4. Дипломник Аватар для ZCFDDD
    • Регистрация: 01.06.2012
    • Сообщений: 104
    • Репутация: 6
    _http://wp-kama.ru/function/query_posts
    query_posts с версии 1.5.0
    Описание

    Используется для указания, какие посты нужно показывать в базовом Цикле WordPress. Изменяет Цикл WordPress. Возвращает список постов. Функция не должна использоваться более одного раза на странице.

    Функция может принимать массу различных параметров, которые можно указывать как в виде массива, так и в виде строки (cat=4&posts_per_page=5).

    Благодаря этой функции можно изменить стандартный вывод постов в WordPress. Вывод формируется на основе того, какая страница показывается (главная, архив по дате, категория, архив автора и т.п.). Например, можно изменить цикл так:
    ↑ Параметры Сотрировки

    Посты можно сортировать по следующим полям. Значение поля нужно указывать в параметр orderby (например, orderby=title).
    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 - сортировка по произвольным полям значения которых являются числами. С версии 2.8.
    none - не сортировать, выводить прям как находиться в БД. равносильно сортировке по ID. С версии 2.8.
    comment_count - сортировка по количеству комментариев. С версии 2.9.
    Примеры

    1. Выведем посты отсортированные по заголовку в обратном порядке:
    Код
    query_posts( array ( 'orderby' => 'title', 'order' => 'DESC' ) );
    на сколько я понимаю, это то, что тебе нужно
    • 1

    Спасибо сказали:

    dev1(08.07.2012),
  5. Опытный Аватар для Crasher69
    • Регистрация: 08.09.2009
    • Сообщений: 437
    • Записей в дневнике: 5
    • Репутация: 175
    • Webmoney BL: ?
    Тоже задавался этим вопросам, даже нашел код. Но с русскими буквами у меня была какая-то беда. Уж и кодировка везде UTF-8, но так и не нашел причины. Может у вас все корректно заработает.

    PHP код:
    <?php
    $args
    =array(
      
    'orderby' => 'title',
      
    'order' => 'ASC',
      
    'posts_per_page'=>-1,
      
    'caller_get_posts'=>1
    ); // задаем условия выборки постов
    $my_query = new WP_Query($args);
    if( 
    $my_query->have_posts() ) {
      echo 
    'Записи по алфавиту. Всего ' count($my_query->posts) . ' постов';
      while (
    $my_query->have_posts()) : $my_query->the_post();
        
    $this_char mb_strtoupper(substr($post->post_title,0,1), 'UTF-8');
        if (
    $this_char != $last_char) {
          
    $last_char $this_char;
          echo 
    '<h2>'.$last_char.'</h2>'// первая буква записи
        
    ?>
        <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка на <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
        <?php
      
    endwhile;
    }
    wp_reset_query();
    ?>
    • 1

    Спасибо сказали:

    dev1(08.07.2012),
  6. Гуру Аватар для dev1
    • Регистрация: 18.01.2012
    • Сообщений: 829
    • Репутация: 273
    • Webmoney BL: ?
    Crasher69, спасибо вы мой спаситель :)
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Drupal поиск по алфавиту
Drupal 2 10.04.2013 15:44
Как убрать вывод постов из под категорий в категорию в ВП?
WordPress 9 28.12.2011 20:44
ТОП худших тем для постов
Дайджест блогосферы 2 26.04.2011 14:10
Слайдер постов WordPress
Блоги 25 16.09.2009 22:40
Кол-по постов на главной
Блоги 54 12.09.2009 22:23

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры