2012-03-14 1 views
0

мне нужно фильтровать мой результат поиска в алфавитном порядке, например во главе странице результатов поиска будет список писем A - B - C - .... - Z - ВСЕКак добавить фильтр a-z в результат поиска Wordpress?

и когда я нажимаю на любом письме результат показать мне сообщения, которые только начинаются с этой буквы

ответ

3

в search.php на вашей теме

перед петлей добавить

<?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; 
} 
add_action('posts_where', 'startswithnumberaction'); 
function startswithnumberaction($sql){ 
    global $wpdb; 
    $startswithnumber = get_query_var('startswithnumber'); 

    if($startswithnumber){ 
     $sql .= $wpdb->prepare(" AND $wpdb->posts.post_title NOT REGEXP %s ", '^[[:alpha:]]'); 
    } 

    return $sql; 
} 

query_posts($query_string .'&startswith='.$_GET['letter'].'&posts_per_page=-1&startswithnumber='.$_GET['number']); 
?> 

</code> 

и затем добавить свои ссылки

echo "<a href='$PHP_Self/?$query_string&number=true' ># </a> - "; 


    foreach (range('A', 'Z') as $i) 
    { 
    $letter =strtolower($i); 
     echo "<a href='$PHP_Self/?$query_string&letter=$letter' >$i </a> - "; 
    } 
    echo "<a href='$PHP_Self/?$query_string' >All </a> 

как то, когда и нажмите на любой букве, результаты поиска будут фильтроваться на должность, которая начинается только с этим письмом

Смежные вопросы