rozklad
7/30/2014 - 6:18 PM

wp_search_by_first_letter.php

<?php
// Configuration
$input['letter'] = 'A';
# $input['letter'] = '0-9'; // for numbers

// Basic arguments for WP query
$args = array(
    'post_type' => 'post'
);

// Search by first letter
if ( isset($input['letter']) ) {

    global $wpdb;

    if ( $input['letter'] == '0-9' ) {
        $query = "
        SELECT      ID
        FROM        $wpdb->posts
        WHERE       SUBSTR($wpdb->posts.post_title,1,1) IN ('".implode("','", range(0,9)) ."')
        ORDER BY    $wpdb->posts.post_title" ;
        $postids = $wpdb->get_col( $query );
    } else {
        $postids = $wpdb->get_col( $wpdb->prepare("
            SELECT      ID
            FROM        $wpdb->posts
            WHERE       SUBSTR($wpdb->posts.post_title,1,1) = %s
            ORDER BY    $wpdb->posts.post_title",$input['letter']));
    }

    $args['post__in'] = $postids;

}
// END - Search by first letter


$query = new WP_Query($args);

// Print out results
while ($query->have_posts()):
    $query->the_post();

    // Print out data
    the_title();

endwhile;