Сообщество несколько месяцев ждало выхода новой 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!
Добавить комментарий