Alfabesi ile başlayan mesajlarını getirme [x]

3 Cevap php
<?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; ?>

Bu basit wordpress döngü kullanarak, nasıl ben SADECE mesajları harfi 'G' demek ile (post başlıkları aslında) başlangıç ​​gösteriyor. Ben alfabetik ancak hepsi değil, maçlar olanlar mesajları sıralamak istiyorum.

Teşekkürler!

3 Cevap

Ben sorgu için bir eylem kuracak. Lütfen temalar functions.php dosyasına:

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;
}

Sonra şöyle mesajları sorgulayabilirsiniz:

query_posts( 'startswith=G&posts_per_page=10' );

Döngü içinde yazı başlığı kontrol edin:

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;

Çılgın burada düşündüm, ama neden sadece yazılan bir etiket olarak Mektubu dont add. Eğer yazı istediğini, diğer bir deyişle, "Güzel Trees" sadece "B" denilen etiketi uygulamak, (ben B ve T değil dedi unutmayın) "B" altında göstermek. Eğer mesajlar bölümü etiketi sorgulamak sonra, sadece emin seçtiğiniz mektubu ekleme yapmak!