Доброго времени суток!
Подскажите код, для вывода из массива записей только по букве "А".
Есть код сортировка по алфавиту, но это не совсем то что нужно:
Подскажите код, для вывода из массива записей только по букве "А".
Есть код сортировка по алфавиту, но это не совсем то что нужно:
Код:
<?php
// Получаем все рубрики сайта
$all_cat = get_categories( array( 'orderby' => 'name', 'order' => 'ASC' ) );
// Выводим каждую рубрику + алфавитный список со статьями к ней относящиеся
foreach ( $all_cat as $item_cat ) {
// Выводим название рубрики в виде ссылки на неё
printf ( '<h2><a href="%s">%s</a></h2>' , get_category_link( $item_cat->term_id ), $item_cat->cat_name );
// Выводим отсортированные по алфавиту записи с этой рубрики
get_abc_posts ( $item_cat->term_id );
}
// Функция для получения отсортированных по алфавиту записей из указанной рубрики, где $cat - ID рубрики
function get_abc_posts ( $cat = null ) {
$posts = get_posts( array ( 'category' => $cat, 'order' => 'ASC', 'orderby' => 'title', 'posts_per_page' => -1 ) );
foreach( $posts as $k => $post ){
// первая буква
$fl = get_first_letter( $post->post_title );
$prev_fl = isset( $posts[ ($k-1) ] ) ? get_first_letter( $posts[ ($k-1) ]->post_title ) : '';
if( $prev_fl !== $fl )
// Буква
echo '<h3>'.$fl.'</h3>';
// Выводим название записи в виде ссылки на неё
printf ( '<a href="%s">%s</a><br>' , get_the_permalink($post->ID), $post->post_title );
}
wp_reset_postdata();
}
// Функция возвращает первую букву переданного в неё слова
function get_first_letter( $str ){
return mb_substr($str, 0, 1, 'utf-8');
}
?>