Нужно сделать вывод постов таким способом. То есть типо сортировка по буквам.
Нашел решение но только для тегов. Как адаптировать для постов что то не могу придумать. Кот может подскажите.
Код для тегов
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 = ceil( count($tags)/$cols_number );
$cutter = $cut;
$letter_i = 0;
$output = '<div class="column">';
foreach ( $tags as $tag ) {
$i++;
$firstletter = mb_substr($tag->name, 0, 1);
if ( $firstletter != $capital ) {
$letter_i++;
if ( $letter_i != 1 ) $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 -->[свернуть]
- 07.07.2012 16:23
- 07.07.2012 17:31
посмотри WP Post Sorting. Обновлялся он, правда, давно. Но в сети есть упоминания, что с 2,9 он работал
если даже он не работает с новым WP, то в нем есть код, который тебе нужен
P.s. и загляни на _http://wordpress.org/extend/plugins/tags/sortПоследний раз редактировалось ZCFDDD; 07.07.2012 в 17:34.
Спасибо сказали:
dev1(07.07.2012), - 07.07.2012 18:24
ZCFDDD, там корректировать кода еще больше чем в моем исходнике
а сортировку лучше сделать без плагина. - 08.07.2012 00:04
_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' ) );Спасибо сказали:
dev1(08.07.2012), - 08.07.2012 01:50
Тоже задавался этим вопросам, даже нашел код. Но с русскими буквами у меня была какая-то беда. Уж и кодировка везде 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();
?>Спасибо сказали:
dev1(08.07.2012), - 08.07.2012 02:11
Crasher69, спасибо вы мой спаситель :)
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
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 |