Очередное мажорное (крупное) обновление WordPress версии 5.6 назначено на середину декабря текущего года: посмотрим, каким гладким образом пройдёт процесс обновления. Думаю, как и частенько бывает в подобных случаях – старт несколько затянется, а значит у нас есть время для подготовки. И пока посмотрим теоретически, что новенького для нас в этот раз в ядре приготовили разработчики.
У меня в блоге есть статьи по текущим обновлениям движка Вордпресс, они собраны в ветке тега – ссылка ниже по тексту. В подобных статьях, я, по мере течения времени, дополняю тесты какими-то решениями для ошибок несовместимости обновлений в связках WordPress – шаблон, плагины, если таковые встречаются. Так что советую подписаться на канал Телеграм – в ленте которого вкратце делимся некоторыми наработками, к примеру Вопрос/Ответ из комментариев – для полноценной статьи текста как бы маловато, а вот для телеги самый раз.
А пока что пробежимся по новеньким плюшкам свежей версии WordPress 5.6:
- Что нового в WordPress 5.6 Field Guide – обзор
- компонент входа и регистрации WordPress API
- WordPress 5.6 REST API
- пакетная структура REST API WordPress 5.6
- регистрация:
- формат запроса
- изменение максимальное количество запросов
- обновления редактора блоков в версии WordPress 5.6 – Block Editor
- обновления jQuery WordPress 5.6
- опция “состояние сайта” в WordPress 5.6
- автоматические обновления ядра в WordPress 5.6
- как отключить автоматические обновления WordPress
- как отключить автоматические minor (второстепенные) обновления WordPress
- PHP 8
ветка тега: версии WordPress
Что нового в WordPress 5.6 Field Guide – обзор
Увидим обновления и дополнения с исправлениями прежних недочётов ядр: опции внешней аутентификации REST API (пароли приложений); внедрена стартовая поддержка PHP 8; как и требовалось ожидать – продолжены работы по оптимизации текстового визуального редактора Gutenberg: добавлены новые функции и пр.
Исправлены 85 недочётов в текущих функциях ядра; выявлены и исправлены 201 ошибок!
Все подобные новшества (крупные изменения) ядра WordPress – впрочем, как и всегда – означают достаточно глобальные изменения в коде, которые, и это естественно в большинстве случаев, потребуют от нас обновления сайта в целом – плагины… темы (шаблон).
компонент входа и регистрации WordPress API
8 обновлений функционала вход/регистрация WordPress API.
Возможно выполнять аутентифицированные запросы к различным API WordPress на основе введенных пользовательских паролей.
Важно: внедрённая ранее система аутентификации на факте файлов cookie из ядра не удаляется, а это значит, что различные пользовательские функции аутентификации (в кодах шаблонов, плагинов), вероятнее всего продолжат работать в обычном режиме – без ошибок из-за обновления ядра…
Создание учетных данных вручную или же программно через REST API; варианты использования созданных учетных данных с REST API или XML-RPC API.
Намечены стартовые варианты будущих разработок REST API.
WordPress 5.6 REST API
В обнове REST API стоит обратить внимание на свежую основу для создания серии REST API вызовов в одном запросе – wp_after_insert_post
.
пакетная структура REST API WordPress 5.6
Маршруты в пакетном запросе должны изначально заявить о поддержке этой функции во время регистрации.
регистрация:
register_rest_route( 'my-ns/v1', 'my-route', array(
'methods' => WP_REST_Server::CREATABLE,
'callback' => 'my_callback',
'permission_callback' => 'my_permission_callback',
'allow_batch' => array( 'v1' => true ),
) );
а) WP_REST_Request – объект для получения текущих данных запроса.
Не должен обращаться к переменным $_GET, $_POST или $_SERVER для получения параметров или заголовков.
б) маршруты непременно возвращают данные. Это может быть WP_REST_Response объект, либо же WP_Error объект или любые сериализуемые данные JSON.
Маршрут не должен напрямую повторять ответ и die(). Например, используя wp_send_json()
либо же wp_die()
.
с) нужно будьте готовым к тому, что один и тот же маршрут может быть вызван несколько раз в пакете.
простейший пакетный запрос может выглядеть так*
{
"requests": [
{
"path": "/my-ns/v1/route"
}
]
}
формат запроса
в данном конкретном случае каждый запрос – это объект. Он может принимать следующие свойства.
{
"method": "PUT",
"path": "/my-ns/v1/route/1?query=param",
"headers": {
"My-Header": "my-value",
"Multi": [ "v1", "v2" ]
},
"body": {
"project": "Gutenberg"
}
}
- method – HTTP – метод, используется для запроса. Если не указано – используется POST метод.
- path – маршрут REST API для вызова. Могут быть включены параметры запроса: это свойство обязательно!
- headers – является объектом заголовка имен до значений заголовков. Если заголовок имеет несколько значений, его возможно передавать как массив.
- body – параметры передаваемые в маршрут. Заполняется типом POST параметра.
изменение максимальное количество запросов
По умолчанию REST API принимает до 25 запросов в одном пакете. Однако, что очень полезно, значение можно фильтровать – увеличивать или уменьшать в зависимости от ресурсов вашего сервера.
add_filter( 'rest_get_max_batch_size', 'my_prefix_rest_get_max_batch_size' );
function my_prefix_rest_get_max_batch_size() {
return 50; // число запросов - указываем своё
}
Подробнее читайте тут.
обновления редактора блоков в версии WordPress 5.6 – Block Editor
Редактор блоков продолжает развитие.
Версия Gutenberg 9.2 (а это: версии 8.6 , 8.7 , 8.8 , 8.9 , 9.0 , 9.1 и 9.2 ) войдёт в ядро WordPress 5.6 (прочесть подробнее на соответствующей странице справочника Гутенберга )!
Стартовые варианты оптимизации (производительности ) будущих версий Gutenberg 9.3 и 9.4 уже являются частью ядра 5.6.
а пока:
Оптимизирован функционал позиционирования видео в блоках обложки; несколько усовершенствованы шаблоны блоков (переводимые строки); в общем поправлен пользовательский интерфейс по функции перетаскивания; исправлены ошибки навигации “горячими клавишами”.
Обо всё этом подробнее возможно прочесть в публикации к Beta WordPress 5.6 1.
Новая версия API блоков позволит настроить отображение (визуализировать) собственные элементы оболочки блока, новый createBlocksFromInnerBlocksTemplateAPI блоков для создания блоков из InnerBlocks шаблона.
кино: вебмастеру полезное: как правильно закомментировать на время код HTML, CSS или PHP, JS
обновления jQuery WordPress 5.6
Как известно из прежних обновлений, WordPress 5.6 несёт в себе 2-ю часть запланированного трехэтапного обновления версии jQuery в комплекте с ядром.
Обновится связка версий jQuery 3.5.1 и jQuery Migrate до единой 3.3.1. В примечании разработчика ниже содержится подробная информация о части 2 плана и многом другом.
Заключительный 3 этап, как говорят, вовсе уберёт jQuery Migrate – всё это планируется удалить в WordPress 5.7 или более поздних.
Поскольку 5.6 включает в себя крупнейшее обновление библиотеки jQuery, следует отнестись с вниманием и крайней осторожностью!
jQuery широко используется в функционалах шаблонов (плагинов), а посему, возможно, будут баги! Однако, мы предупреждены, а значит вооружены.
В оружейном арсенале непременно должен присутствовать для активного сайта – тестовый сайт (как создать тестовый сайт за 5 минут.).
в плане интересно почитать:
если выскакивает сообщение ОБ ОШИБКЕ: WordPress необходим доступ к серверу по FTP
Подробнее о том, как рационально подключать jQuery библиотеки от CDN Google.
14 полезных сниппетов — код для наилучшей работы сайта WordPress.
Когда и как правильно нужно создавать дочернюю тему шаблона?
опция “состояние сайта” в WordPress 5.6
В версии 5.6 Вордпресс добавлены аж 11 обновлений в опции отслеживания работоспособности сайта (Консоль или Инструменты/Здоровье сайта).
Улучшения в способах проверки и обработки данных в отчёте работоспособности компонентов сайта: к примеру, такой инструмент “Запланированной проверки работоспособности сайта”.
автоматические обновления ядра в WordPress 5.6
Чтобы отключить автоматические обновления для основных (мажорных: 5.5, 5.6 и т.п – без третьего цифрового значения) версий по умолчанию…
как отключить автоматические обновления WordPress
…всего-то потребуется для константы WP_AUTO_UPDATE_CORE
установить значение false
(отключим все автоматические обновления).
/*отключение автообновления вордпресс*/
define( 'WP_AUTO_UPDATE_CORE', false ); // или minor - второстепенные
Минорные (minor – в нашем случае – незначительные) – для включения только второстепенных обновлений.
В файле wp-config.php
в корневой директории сайта.
Как альтернатива данного выше варианта: разработчики можно использовать allow_major_auto_core_updates
как фильтр для настройки автоматических обновлений для основных (мажорных) версий – true
или false
по умолчанию.
add_filter( 'allow_major_auto_core_updates', '__return_false' );
полезные константы Вордпресс.
как отключить автоматические minor (второстепенные) обновления WordPress
Есть обработчик действий, который позволяет – при желании – добавить некоторые требуемые для администратора сайта параметры.
Работаем с after_core_auto_updates_settings
крючёк действия, к которому цепляемся – т.е. добавляем требуемые настройки или текстовые пояснения.
Например, данный ниже код обусловит возможность отказа от автоматического обновления второстепенных (minor) выпусков версий WP:
function my_plugin_after_core_auto_updates_settings( $auto_update_settings ) {
$upgrade_minor = $auto_update_settings['minor'];
if ( isset( $_GET['minor-updates'] ) ) {
check_admin_referer( 'core-minor-auto-updates-nonce' );
if ( 'enable' === $_GET['minor-updates'] ) {
update_site_option( 'auto_update_core_minor', 'enabled' );
$upgrade_minor = 'enabled';
echo '<div class="notice notice-success"><p>' . esc_html__( 'Minor updates enabled.', 'my-plugin' ) . '</p></div>';
} elseif ( 'disable' === $_GET['minor-updates'] ) {
update_site_option( 'auto_update_core_minor', 'disabled' );
$upgrade_minor = 'disabled';
echo '<div class="notice notice-success"><p>' . esc_html__( 'Minor updates disabled.', 'my-plugin' ) . '</p></div>';
}
}
?>
<p class="auto-update-status">
<?php
if ( 'enabled' === $upgrade_minor ) {
// Minor auto-updates are currently enabled.
esc_html_e( 'Minor auto-updates are enabled. You can choose to', 'my-plugin' );
printf(
' <a href="%s" class="core-auto-update-settings-link core-auto-update-settings-link-enable">%s</a>',
wp_nonce_url( add_query_arg( 'minor-updates', 'disable', $action_url ), 'core-minor-auto-updates-nonce' ),
esc_html__( 'disable auto-updates for minor releases.', 'my-plugin' )
);
} else {
// Minor auto-updates are currently disabled.
esc_html_e( 'Minor auto-updates are disabled. It’s recommended to', 'my-plugin' );
printf(
' <a href="%s" class="core-auto-update-settings-link core-auto-update-settings-link-enable">%s</a>',
wp_nonce_url( add_query_arg( 'minor-updates', 'enable', $action_url ), 'core-minor-auto-updates-nonce' ),
esc_html__( 'enable auto-updates for minor releases.', 'my-plugin' )
);
}
?>
</p>
<?php
}
add_action( 'after_core_auto_updates_settings', 'my_plugin_after_core_auto_updates_settings', 10, 1 );
как эпилог:
сопутствующее по обновлению WordPress:
PHP 8
Следующая версия PHP 8.0.0, как заявлено в открытых источниках, запланирована на начало декабря, т.е. чуть ранее намеченного WordPress 5.6.
Поскольку PHP 8 является выпуском основной версии, изменения могут повлечь нарушения в работе сайтов, баги с совместимостью для различных API.
Ввиду этих, скажем так, одновременных обновлений – версий: языка php
и ядра WordPress – нам предстоят, как ни крути, исправления в ядрах наших сайтов!
mihalica.ru !
Спасибо за подсказки!
Боюсь казусы с обновлениями возникнут. Поможете в случае чего!
Здравствуйте Наталья! Помогу конечно же…
Спасибо за работу. Однако, сложное это дело для новичка – следить за обновлениями Вордпресс и чтобы ещё сайт при этом не сломался.
Вообще, конечно, эти обновления напрягают. теперь вот WordPress 5.6 пугает предстоящей работой.
Только обновился, трафик почему-то сильно просел. В пользовании много лишних кликов. На размещение 1 статьи в двое больше времени занимает, буду благодарен если подскажете как узнать какая версия ВП у меня была раньше и как ее вернуть без утери контента
Интересный вопрос!!
Как я могу знать, какая у вас была версия ВП?! …и вы не узнаете, если у вас нет бэкапов!
А если есть, смотрите по информации в них…