Получить сообщения, начинающиеся с алфавита [x] - PullRequest
2 голосов
/ 11 февраля 2010
<?php $temp_query = $wp_query; ?>
<?php query_posts('tag=sometag,anothertag&posts_per_page=10'); ?>

<?php while (have_posts()) : the_post(); ?>
  // print post here
<?php endwhile; ?>

<?php $wp_query = $temp_query; ?>

Используя этот простой цикл wordpress, как показать ТОЛЬКО сообщения (фактически, заголовки сообщений), начинающиеся с, скажем, буквы «G». Я хочу сортировать посты в алфавитном порядке, но только те, которые соответствуют, а не все.

Спасибо! * * 1004

Ответы [ 3 ]

5 голосов
/ 12 февраля 2010

Я бы настроил действие для запроса. В ваших темах файл functions.php:

add_action( 'posts_where', 'startswithaction' );
function startswithaction( $sql ){
    global $wpdb;
    $startswith = get_query_var( 'startswith' );

    if( $startswith ){
        $sql .= $wpdb->prepare( " AND $wpdb->posts.post_title LIKE %s ", $startswith.'%' );
    }

    return $sql;
}

Затем вы можете запросить посты так:

query_posts( 'startswith=G&posts_per_page=10' );
3 голосов
/ 11 февраля 2010

Проверьте заголовок сообщения внутри цикла:

while (have_posts()) : the_post();
    // jump to the next post if this one doesn't start with the letter you want
    if($post->post_title[0] != $letter) continue

    // do what you want with the post
endwhile;
0 голосов
/ 11 февраля 2010

Сумасшедшая мысль здесь, но почему бы вам просто не добавить письмо в качестве тега к сообщению. Другими словами, если вы хотите, чтобы ваш пост «Красивые деревья» отображался под буквой «B» (обратите внимание, что я сказал «B», а не «T»), просто примените тег «B». Затем в разделе запроса тегов к сообщениям просто добавьте свое письмо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...