Сообщество несколько месяцев ждало выхода новой WordPress 4.1: кому-то нетерпелось попробовать новые функции пагинации; кто-то хотел посмотреть и «пощупать» новую тему Twenty Fifteen; а возможно есть и такие, которые ждали полноэкранный режим написания постов.
Об этом и не только смотрите в нашем обзоре!
#
WordPress 4.1 для разработчиков

В самом обзоре мы остановились на «потребительских» функциях новой версии WordPress, а здесь в блоге хотелось бы поговорить про нововведения для разработчиков.
Новая пагинация
Очень большая боль всех разработчиков — пагинация для постов, особенно «красивая» пагинация в виде нескольких страниц и возможности перейти к последней. Дополнительных проблем добавляла нужда прописывать поведение для custom типов постов (проверять параметр $paged и т.д.).
Теперь разработчикам тем доступны три новые функции: the_posts_navigation, the_post_navigation, the_posts_pagination. Последняя мне кажется наиболее интересной. Вот такие параметры принимают эти функции.
the_posts_navigation( $args = array(
'prev_text' => __( 'Older posts' ),
'next_text' => __( 'Newer posts' ),
'screen_reader_text' => __( 'Posts navigation' ),
));
the_post_navigation( $args = array(
'prev_text' => __( 'Previous post' ),
'next_text' => __( 'Next post' ),
'screen_reader_text' => __( 'Post navigation' ),
));
the_posts_pagination( $args = array(
'show_all' => false,
'prev_next' => true,
'end_size' => 1,
'mid_size' => 1,
'before_page_number' => '',
'after_page_number' => '',
'prev_text' => __( 'Older posts' ),
'next_text' => __( 'Newer posts' ),
'screen_reader_text' => __( 'Posts pavigation' ),
));
Для каждой из этих функций существует аналогичная с префиксом get_ вместо the_, которые возвращаются значения, а не выводят их.
Customizer с условиями
В новом релизе появилась возможность показывать некоторые области кастомайзера только на определенных типах страниц. И несмотря на то, что я считаю это не всегда уместным и правильным (пользователи просто могут не узнать о некоторых возможностях темы), такая возможность теперь присутствует.
Сделать это можно с помощью параметра active_callback:
function contextual_static_front_page_section( $wp_customize ) {
$wp_customize->get_section( 'static_front_page' )->active_callback = 'is_front_page';
}
add_action( 'customize_register', 'contextual_static_front_page_section', 11 );
И panel и section могут наследовать друг от друга этот параметр. Если все «секции» в «панели» неактивны, то тогда и сама «панель» пропадает из кастомайзера.
Подробнее читайте здесь: Toward a Complete JavaScript API for the Customizer.
Динамические заголовки без возможного дублирования
Теперь в темах рекомендуют использовать конструкцию add_theme_support( 'title-tag' ) вместо того, чтобы вручную писать wp_title(). Этой конструкцией мы говорим WordPress о том, что тема не использует никаких статических заголовков и можно безбоязненно генерировать автоматические.
Вешать эту функцию нужно либо на after_setup_theme, либо на init екшены.
Сложные мета-запросы
Начиная с версии 3.1 мы могли выполнять сложные запросы с помощью класса WP_Query и параметров tax_query, meta_query и date_query. Теперь в 4.1 мы можем использовать вложенные условия для усложнения логики запроса. Например:
$args = array( 'post_type' => 'post', 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array( 'quotes' ), ), array( 'relation' => 'AND', array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array( 'post-format-quote' ), ), array( 'taxnoomy' => 'category', 'field' => 'slug', 'terms' => array( 'wisdom' ), ), ), ), ); $query = new WP_Query( $args );
Такой запрос выведет все записи, которые находятся в категории quotes ИЛИ записи формата quote, находящиеся в категории wisdom.
#Заключение
Итого имеем вполне сносный релиз, с большим количеством шагов навстречу разработчикам и пользователям. Ждем дальнейшего развития. Ура, WordPress!
Добавить комментарий