ГлавнаяНовостиЧто нового в WordPress 4.0

Что нового в WordPress 4.0

WordPress 4.0 «Бенни» назван в честь джазового музыканта Бенни Гудмана. В новой версии ядра улучшилась поддержка языковых пакетов, появился предпросмотр встраиваемых объектов, новый экран для управления медиа файлами, новый интерфейс для установки плагинов и многое другое.

Управлением медиафайлами

В предыдущих нескольких версиях WordPress были затронуты некоторые элементы для работы с медиафайлами, а в версии 4.0 разработчики полностью переделали раздел Медиафайлы → Библиотека.

Интерфейс теперь большое похож на тот, что мы привыкли видеть на экране «Добавить медиа» при создании записей или страниц:

Новая медиатека в WordPress 4.0

Новая медиатека в WordPress 4.0

Режим «сетки» в медиа библиотеке позволит быстро просмотреть и выбрать требуемые фотографии. Сетка прокручивается бесконечно, что очень удобно при работе с большим количеством файлов.

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

Просмотр медиа файлов в WordPress 4.0

Просмотр медиа файлов в WordPress 4.0

Новый режим поддерживает почти весь функционал который поддерживался в предыдущем интерфейсе, включая возможность отметить и удалить сразу несколько файлов. Переключиться в старый режим списка можно в левой части панели инструментов.

Предпросмотр встраиваемых объектов

На протяжении уже нескольких лет WordPress поддерживает встраивание внешних объектов, например видео с YouTube или сообщение из сети Twitter. Для этого достаточно вставить ссылку на тот или иной объект в редактор, а при публикации WordPress автоматически встроит этот объект в запись.

В версии 4.0 разработчики расширили этот функционал, который теперь позволяет просматривать встраиваемые объекты прямо в визуальном редакторе WordPress.

Предпросмотр видео с YouTube в редакторе WordPress 4.0

Предпросмотр видео с YouTube в редакторе WordPress 4.0

Предпросмотр в редакторе поддерживают все встраиваемые объекты доступные в WordPress, включая те, что можно добавить с помощью плагинов. При этом если панель администрирования работает через SSL то просмотр в редакторе будет доступен только для объектов, которые работают через HTTPS, не нарушая целостность вашего защищенного соединения.

Автоматическая прокрутка редактора

Если вам часто приходится работать с большим количеством контента в WordPress, то наверняка это изменение окажется для вас наиболее полезным.

В версии 4.0 высота редактора подстраивается под высоту экрана браузера, а при прокрутки основного экрана, прокручивается и содержимое редактора, при этом панель инструментов «прилипает» к верхней части окна браузера.

Данное поведение легче всего продемонстрировать с помощью видео:

Обратите внимание, что при прокрутки, правая часть интерфейса также прилипает к верхней и нижней частям окна браузера, что позволяет быстро добраться до кнопки «Опубликовать» без необходимости прокручивать экран вверх до конца.

Кстати, эту функцию можно отключить для вашего пользователя в настройках экрана, или вовсе отключить для всех пользователей сайта, используя фильтр в плагине WordPress:

add_filter( 'wp_editor_expand', '__return_false' );

Установка плагинов в 4.0

В WordPress 4.0 появился совершенно новый интерфейс для поиска и установки плагинов из официальной директории WordPress.org. Плагины теперь представлены в виде «карточек», каждая из которых имеет иконку:

Интерфейс для поиска и установки новых плагинов в 4.0

Интерфейс для поиска и установки новых плагинов в 4.0

В карточке видно сразу количество скачиваний, рейтинг плагина, последнее обновление и совместимость с вашей версией ядра WordPress. Любую карточку можно раскрыть для более подробного описания плагина, инструкций по установке, отзывов и другой информации.

Языковые пакеты

В новой версии WordPress улучшена поддержка языковых пакетов, некоторые из которых теперь обновляются автоматически при установки или обновлении любой темы или плагина, и при обновлении самого ядра.

В WordPress 4.0 также появился интерфейс выбора языка во время установки. В зависимости от выбора, WordPress автоматически загрузит и установит требуемые языковые пакеты с официального источника.

Выбор языка при установки WordPress

Выбор языка при установки WordPress

Выбранный язык теперь хранится в опциях сайта. Его легко изменить в настройках, а константа WPLANG в файле wp-config.php, с помощью которой мы привыкли переключать язык интерфейса WordPress, больше не существует.

Улучшенная группировка в конфигураторе тем

В WordPress версии 3.9 в конфигураторе тем появилась возможность управлять виджетами, но во многих (особенно премиум) темах, разработчики любят закладывать большое количество разделов для виджетов, поэтому этот интерфейс для них стал нагроможденным и неудобным.

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

Панели в конфигураторе WordPress 4.0

Панели в конфигураторе WordPress 4.0

С помощью API разработчики тем и плагинов смогут создавать собственные подобные панели для группировки любых элементов управления в конфигураторе тем WordPress. Подробнее о данном API на английском.

Кроме упомянутых выше новых функций, в новой версии произошло большое количество изменений «под капотом», которые сделали данную версию WordPress еще быстрее, стабильнее и безопаснее. Список всех изменений в версии 4.0 можно посмотреть в баг-трекере WordPress.

Видео-релиз WordPress 4.0

Обновить WordPress до последней версии вы можете из панели администрирования в разделе Консоль → Обновления, или скачать WordPress 4.0 в архиве с сайта WordPress.org.

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

Какие из упомянутых изменений оказались для вас наиболее полезными? Что бы вы хотели видеть в будущих обновлениях ядра WordPress?

Подписаться на рассылку

Подписаться → Подпишитесь на бесплатную рассылку журнала WP Magazine и получайте новости, события, подборки тем и плагинов, уроки, советы и многое другое в мире WordPress!

  • Slava UA

    Я удивлялся фичам WordPress 4.0 ровно до того момента, когда узнал, кто именно «ведущая разработки» этой версии. Именно тогда и стало ясно, почему столько сделано для UI в этой версии.

    • kostya adam

      и кто же это?

      • Slava UA

        Helen Hou-Sandí http://helenhousandi.com/ — она как раз занимается тем, что улучшает юзабилити.

  • Flector

    за способ отключения кривого редактора спасибо, а вот про «исчезновение WPLANG» я не согласен — это единственный способ установить русский язык, если сервер настроен как-то «не так» для автоматического скачивания русских файлов локализации. и, кстати, никто мне так и не смог сказать, какие настройки сервера не дают вордпрессу при установке скачивать файлы локализации — сам движок вообще отказывается говорить о том, почему он не смог скачать файлы локализации.

    • Если сервер настроен «как-то не так» то у вас куда более серьезные проблемы, чем язык выашего сайта, так что лучше исправить настройку этого сервера. Если вы скачали файлы локализации вручную, то их в любом случае можно использовать, и директива WPLANG в wp-config.php для этого больше не нужна.

      Как мы уже отметили значение WPLANG теперь хранится в таблице с опциями даже для одиночных установок (в мультисайт это было и раньше) а изменить язык интерфейса можно в настройках сайта. Константа WPLANG больше за это не отвечает — у вас в wp-config.php может стоять ru_RU, а в настройках вы можете выбрать английский язык и WordPress отдаст предпочтение настройкам.

      По поводу настроек сервера здесь три основных момента.

      Первый — возможность выполнять HTTP запросы на внешние ресурсы, с помощью Curl, сокетов и т.д. Некоторые хостинг-провайдеры почему-то это это отключают.

      Второй момент — правильная конфигурация валидации SSL сертификатов на сервере. Ядро WordPress откажется что-либо обновлять или загружать, если подлинность сертификата WordPress.org не может быть проверена, а некоторые «грамотные» хостинг-провайдеры любят отключать эти проверки для «ускорение» запросов, но это конечно же не безопасно.

      Третий момент — правильная конфигурация прав на сервере, возможность записи файлов за пределами директории wp-content/uploads. WordPress пытается это делать несколькими разными способами, начиная от прямого fopen() заканчивая FTP и SSH.

      Плагин Core Control поможет отладить некоторые из этих моментов.

      • Flector

        WPLANG помогает в таком случае — установили WordPress 4.0 с нуля (языки локализации движком не скачались), заходим в обновление движка — жмем кнопку скачать файлы локализации — скачиваются файлы локализации на основании указанного языка в
        WPLANG. (если заранее создать папку languages с правами 777)

        второе — я не знаю, что именно проверять на сервере. Curl работает, информация об обновлениях движком скачивается, плагины информации о плагинах нормально работают с API репозитория плагинов.

        и да — любое скачивание или обновление у меня происходит через FTP — вордпресс спрашивает логин и пароль. Core Control я сейчас установлю, просто не совсем понятно, в какую сторону копать.

        • Если ядро каждый раз спрашивает данные об FTP, значит оно не может без вашего участия обновить какие-либо файлы. Вы можете либо настроить права на прямой доступ, либо записать данные FTP в wp-config.php, чтобы WordPress мог выполнять требуемые операции без вашего участия. На этом основаны все фоновые обновления, включая ядра и языковых пакетов.

          По поводу константы WPLANG вы правы, возможно это поможет в английской версии скачать русские языковые пакеты, но опять же, это можно и с опцией сделать:

          UPDATE wp_options SET option_value = ‘ru_RU’ WHERE option_name = ‘WPLANG’;

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

          • Flector

            не знаю, тут ваша система комментирования глючил — написал ранее про плагин Core Control — там у меня красное на Direct и SSH2, в External все зеленое и все удачно протестировано. FTP меня полностью устраивает за исключением только одного момента — в 4.0 языки локализации скачиваются только при Direct методе, никакого FTP нет — поэтому установка движка неполноценная получается. не совсем понятно, что нужно сделать для включения Direct метода — полагаю, что строчки в wp-config.php будет недостаточно.

          • Она не глючит, она отправляет сообщения содержащие внешние ссылки на модерацию :)

      • Кстати, по поводу «сервер настроен как-то не так». Начал тестировать VPS и столкнулся с тем, что WordPress не делал картинки разных размеров при загрузке. Стало понятно, что PHP-библиотеки не хватает. Так что статья о том, что именно необходимо WP для хорошей работы была бы не лишняя. В интернетах в паре мест кое-что есть, но как-то урывками, в Кодексе вообще лишь PHP и MySQL указаны и, мол, хватит :)

        • Спасибо, примем к сведению :) На самом деле наличие библиотеки GD или ImageMagick для WordPress вовсе не обязательно. Если вы используете сторонний CDN сервер, например Photon от WordPress.com, то все миниатюры могут браться оттуда напрямую, и хранить их на вашем сервере незачем, т.к. они в таком случае никогда не используются.

  • Ivan Panfilov

    когда нибуть уже уберут этот бред — чтобы wordpress перестал зависеть от имени хоста и небыло необходимости править через sql-запросы базовый путь к сайту при переносе на другой хост ?
    ну не хочу я прописывать базовый путь и привязываться к домену, без этого что никак нельзя обойтись?

    • Думаю что не уберут, поскольку содержимое в WordPress часто используется за пределами вашего сайта, например в мобильных приложениях, в RSS лентах и агрегаторах, во внешних сайтах, в REST API и т.д. и чтобы этим агрегаторам и приложениям правильно отображать ваши изображения и все остальное, им необходимо всегда знать полный путь.

      Кроме как на перенос сайта с одного домена на другой, плюсов относительные ссылки больше не дают. А с помощью WP-CLI вы можете выполнить этот поиск с заменой за считанные секунды, без каких-либо SQL запросов.

      • Ivan Panfilov

        ну ладно бы подставлял на страницах хост. так он вообще не работает при простом переносе.
        для меня это реальная проблема когда разрабатываеш на тестовом домене. и надо синхронизировать постоянно туда сюда данные. простым копированием не обойтись.
        в joomla drupal и многих других — нет такой проблемы и зависимости от хоста.

        • Еще раз повторю, для WP-CLI это одна команда:

          wp search-replace ‘http://example.dev’ ‘http://example.com’

          Еще можете рассмотреть специальные плагины для переноса/деплоймента контента, например RAMP (платный).

          • Ivan Panfilov

            Requirements
            UNIX-like environment (OS X, Linux, FreeBSD, Cygwin)

            я сижу под Windows. для костыля wpcli навернуть еще костыль в виде Cygwin… окей…. не проблема.

          • WP-CLI это не костыль, а хороший инструмент для разработчиков WordPress.

            А вот то, что вы разрабатываете и тестируете сайты на Windows, а затем запускаете их наверняка на Linux-хостинге, это действительно «костыль» :) Крайне рекомендуем вам перейти на разработку и тестирование в среде, более похожей на ту, что будет в «реальном мире», например с помощью VirtualBox, а там и командная строка нормальная, без Cygwin.

          • Ivan Panfilov

            да пробовал и vmware и vbox и вагрант.
            комп тормозит. не вариант короче. а хостинг большинство шаред — не позволяет ssh
            php хорошо работает под windows так что не вижу тут проблемы такой — кроме отсутсвия тулз типа wpcli

          • Slava UA

            У меня под Windows нормально работает wp-cli. Единственный костыль — свой батник-алиас, вместо php wp-cli.phar пишу wp. Хотя нечто подобное надо и под никсами делать.

        • Flector

          в wp-config.php можно прописать

          $_SERVER[‘HTTP_HOST’] и не менять урлы при переносе сайтов. подробнее — http://codex.wordpress.org/Editing_wp-config.php

          • Это сработает только для функций, которые опираются на home_url() и т.д., а например все ссылки в записях и страницах будут ссылаться на старый домен, и если он локальный то будут битые картинки.

          • Flector

            да это понятно, просто не надо вручную менять в базе home и siteurl — а ссылки на локальные ресурсы менять и не надо — по крайней мере, мне — я на локальном сервере сайт не заполняю, только настраиваю.

          • В таком случае лучше использовать константы WP_SITEURL и WP_HOME.

            Еще можно заниматься разработкой и настройкой на том же домене, только локально, а с помощью расширения HostAdmin для Chrome быстро меняться между локальным сервером и удаленным. В этом случае замен вообще никаких производить не нужно.

          • Flector

            так я про них и говорил :)

          • Окей, наверное Disqus съел часть вашего комментария из-за форматирования :)

          • Ivan Panfilov

            она актуальна для новых версий?
            круто тогда.

  • Копать в сторону прав на чтение и запись, пользователь и группа от имени которого запускаются процессы PHP. Это для Direct. Для SSH и FTP вы можете просто указать данные в конфиге, если не боитесь хранить там пароль. Подробнее здесь.

    • Flector

      та плин, просто не знаю в какую сторону копать. вот есть VDS, управляю я им через root доступ. но сайты, папки и прочее создаются от отдельного пользователя flector — сама папка /var/www/flector принадлежит flector из группы flector. нужно задать ему какие-то права или сменить пользователя на root или вообще в какую сторону копать?

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

      • Еще раз:

        Копать в сторону прав на чтение и запись, пользователь и группа от имени которого запускаются процессы PHP.

        Если вы не меняли стандартную конфигурацию, то наверняка у вас пользователь www-data, apache или nginx и не имеет права на запись в директорию flector.

        А если вас устраивает обновление по FTP так ничего делать и не надо :) Если требуется обновить языковые пакеты, то вы можете сделать это вручную в разделе Консоль → Обновления.

        • Flector

          ок, спасибо. помогла рекурсивная смена владельца для всех файлов папки с сайтом на apache. установку движка с нуля не проверял, но плагины стали обновляться без FTP, а Core Control показывает Direct метод зеленым. спасибо.

          • Всегда пожалуйста :)

  • cheh

    После обновления движка до версии 4.0 некоторые страницы со шорткодами перестали работать — в браузере «This webpage is not available».
    Есть подозрение что это происходит из-за обновленной функции ядра wptexturize, так как если в файле wp-includes/default-filters.php закомментировать вызов фильтра

    add_filter( ‘the_content’, ‘wptexturize’ );

    страница и шорткод работают.

    Есть подобные случаи? Как с этим бороться?

    • Да, наверняка это проблема с регулярными выражениями в wptexturize(). Было несколько подобных случаев (с огромным количеством контента) и разработчики обещают исправить ошибку в 4.0.1. Как бороться: можете подождать, можете испробовать предложенный патч, можете временно отключить wptexturize(), или откатиться до предыдущей версии.

      • cheh

        Спасибо, Константин.

  • Вижу тут люди умные, поэтому спрошу…
    Ждал и надеялся на то, что в новой 4.0 версии всёжтаки добавят в визуальный редактор нормальный менеджер файлов. Та система загрузки, например, картинок в медиабиблиотеку с записью в БД (по папкам с именами зависимыми от месяца и даты), оч раздражает. Каталогизация должна быть у меня своя. При беглом осмотре редактора в WP 4.0 версии такой опции не увидел, при том, что в анонсе изменений библиотеку TinyMCE обновили. Доп.плагин TinyMCE Advanced опции менеджмента файлов не добавляет.
    В общем сам вопрос — реализована ли данная фишка в WP 4.0 как стандартная, и если нет, то как её можно реализовать, хотя бы даже со сторонним плагином.

    До сих пор пользуюсь довольно старой сборкой Dean’s FCKEditor, в которой есть отлично работающий менеджер.
    Заблаговременно спасибо!

    • Нет, структура хранения данных в версии 4.0 не изменилась. Разбиение файлов в директории с месяцами и годами сделано для совместимости с файловыми системами, которые не позволяют хранить большое количество файлов в одной директории, например FAT32 (всего 65 тыс.) или ext2 (проблемы с производительностью от 10 тыс. файлов). Эту опцию можно отключить в разделе Настройки → Медиафайлы.

      Если вам нужен полноценный файловый менеджер с возможностью создания директорий и т.д., то советуем смотреть в сторону внешних хранилищ, как например Dropbox и Amazon S3. Для них есть много различных плагинов WordPress. Конкретный плагин порекомендовать не можем т.к. сами не пользуемся.

  • AdminTFEB

    Автоматическая прокрутка — действительно удобная штука

  • andrdov

    смотрите я создал в теме свой файл например, test.php

    и пишу в нем print_r(wp_get_attachment_url(get_post_meta(66, ‘image’, true)));этот код в файле page.phpработает а в моем нет

    • Все зависит от того, как вы подключаете ваш файл test.php и полное его содержание. Советуем обратиться с этим вопросом на форум поддержки WordPress.org.

  • andrdov

    В конце страницы я пишу шорткод, а при выводе этой страницы он выводится вначале, может кто то подскажет как от этого избавится?

    • andrdov

      нашел решение, «Используйте ‘return’, а не ‘echo’ — иначе содержимое будет выводится в браузер, но не будет отображаться в нужном месте на странице.»

      • Да, шорткоды должны всегда возвращать результат, а не выводить его на экран. Вы можете также воспользоваться буфером вывода с помощью функций ob_start() и др.

  • Роман

    почему не могу загрузить свою тему на вордпресс? пишут, будто ошибка в файле css

    • Попробуйте обратиться за поддержкой к разработчику темы или в разделе «Темы» на форуме поддержки WordPress.org.

  • Антон

    Кто-нибудь, помогите моей беде, пожалуйста.
    Обновил движок вручную до версии 4.0.1 зашел в админку, а там английский язык вместо русского.
    Попробовал переустановить уже в автоматическом режиме — никакого результата, т.к. не обновляет свежую версию((
    Что делать? как вернуть русский язык?

    Заранее благодарен

    • Антон, скачайте и установите русскую версию с официального сайта (вам нужна лишь директория wp-content/languages) и после этого смените язык на русский в настройках сайта (Settings → General).