Записи (posts) — (REST API в WordPress → Маршруты WP из коробки)


Содержание материала:

Как добавить пользовательские таблицы / конечные точки в WP REST API?

Я создал пользовательские таблицы по причинам производительности для продуктов, тележек и уведомлений. Я хочу, чтобы эти таблицы и их данные были доступны для обычного CRUD через WP REST API v2. Как добавить пользовательские таблицы (и их столбцы) в API, чтобы я мог получать / обновлять эти записи?

Solutions Collecting From Web of «Как добавить пользовательские таблицы / конечные точки в WP REST API?»

В итоге я разработал решение для таблицы restaurants , которая находится рядом с таблицами wp_* в моей базе данных WP. Надеюсь это поможет

У меня есть вариации по этой теме для всех действий CRUD, которые мне нужны

Вместо создания пользовательских таблиц базы данных вам было бы лучше создавать собственные пользовательские типы сообщений (в WordPress – начиная с 4.7. +) Вместе с любыми настраиваемыми полями, которые вам нужны (а также таксономиями).

Все это можно сделать как плагин или через functions.php в теме.

Вот очень простой, но исчерпывающий пример того, как это сделать.

В нем показано, как создать пользовательский тип сообщения (называемый «acme_products») и его настраиваемые поля с возможностью использования пользовательских таксономий (категорий). Все с поддержкой REST API встроены. Он также покажет вам, как настроить входные (мета) поля для форм WP-Admin и столбцы страниц списка.

Отключаем REST API WordPress

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

Плагин REST API намного облегчает извлеченте данных с помощью запросов GET. Это крайне полезно для разработки приложений с WordPress.

Но JSON REST API потенциально открывает ваш сайт для нового фронта DDoS атак, что отнимает много ресурсов и замедляет сайт. Помимо потенциальной угрозы безопасности сайта, данный плагин может создавать дубли страниц, что негативно сказывается на поисковую выдачу.

Для большинства пользователей REST API WordPress совершенно бесполезный и ненужный функционал.

Отключаем Rest Api WP JSON

Перед отключением советую проверить наличие функционала API WP JSON на вашем сайте. Для этого достаточно посмотреть исходный код Главной страницы. Если в коде присутствуют такие ссылки, значит REST API JSON подключен.

Из данного кода видно, что API ВЗАИМОДЕЙСТВУЕТ со встраиваемой библиотекой Oembed json+oembed . ЕЕ тоже отключаем, если вы не собираетесь выводить вставки из других сайтов на своем.

Не отключайте REST API в WordPress

Впервые обнаружив на одном из сайтов ссылки с директорией wp-json и oembed в поиске, тут же было предпринято отключение всех фильтров REST API. Как оказалось позже, это повлияло на работу некоторых плагинов. В частности на Contact form 7, он просто перестал отправлять почту. Чтобы понять, что причина сбоя вовсе не в плагинах, мне пришлось вспоминать все мои последние действия на сайте. Убедившись, что причина как раз в отключении REST API, я удалила все функции и решила понять, для чего же нужна эта структура в WordPress. Посетив сайт developer.wordpress.org и ознакомившись со справочником по REST API, стало понятно, что это очень необходимый интерфейс для разработчиков плагинов. Он предназначен для устранения разрыва между ядром PHP WordPress и встроенным JavaScript. Так что отключить его, значит лишить сайт некоторой функциональности. Возможно, кто-то скажет, что REST API имеет некоторую уязвимость. Но если вы будете постоянно обновлять WordPress, следить за актуальностью версий плагинов, то эти простые действия обезопасят ваш сайт.

Как убрать wp-json и oembed из поиска.

Включение REST API обратно, возвращает все ссылки с wp-json и oembed в поиск. Поэтому я не нашла ничего лучше, чем заблокировать их в файл robots.txt.

Но некоторые вебмастера все-таки придерживаются мысли, что нет необходимости блокировать wp-json. Якобы поисковики их проиндексируют, но не отразят в поиске. Кто-то рекомендует создать файл .htaccess для папки /wp-json с текстом Deny from all. Все три варианта имеют место быть, но я пока выбрала запрет в robots.txt.

Как подружить WebP и WordPress

Как использовать Диспетчер тегов Google на страницах AMP

Бесплатные источники изображений для сайтов

Красивая навигация с изображениями между постами в WordPress

Два способа сделать видеофон для сайта

Кнопка «Добавить сайт в закладки»

Как переименовать слово купон в Woocommerce

Занимаюсь разработкой сайтов, блогов, интернет-магазинов, лендингов на WordPress, HTML. Оказываю платные помощь и консультации.

4 комментария

Здравствуйте, уважаемая Наталья!
Подскажите, как обратно включить REST API в WordPress, если он откючен или удален? Из-за этого у нас проблемы…
Заранее спасибо!

Здравствуйте!
1. API REST включен в WordPress 4.7 автоматически, если ваша версия ниже, то обновите систему.
2, Тщательно проверьте свой functions.php на наличие кода отключающего REST API.
3. Проверьте не установлен ли плагин Disable REST API или похожий.
4. Проверьте и сохраните вновь настройку Постоянных ссылок.
5. Посмотрите свой .htaccess, замените AllowOverride None на AllowOverride All (если данные настройки указаны) .

столько всего перепробовала, чтобы включить rest api — ничего не помогло, а просто действие — пересохранить настройки постоянных ссылок — и все заработало! спасибо огромное за подсказку!

От Екатерины поступил такой вопрос:
На моем сайте (я только работаю над ним) вышли ошибки: REST API выдал ошибку Производительность REST API это способ коммуникации между самим WordPress и другими приложениями. К примеру, экран редактора блоков использует его для отображения и сохранения ваших записей и страниц. Запрос к REST API неудачен из-за ошибки. Ошибка: [] cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received Ваш сайт не смог выполнить петлевой запрос Производительность Петлевые запросы используются для запуска запланированных заданий, а также используются встроенным редактором кода плагинов и тем для проверки корректности кода. Петлевой запрос к вашему сайту не удался, возможности, зависящие от его работоспособности сейчас не работают как нужно. Возникла ошибка: (0) cURL error 28: Operation timed out after 10002 milliseconds with 0 bytes received.

Чистим WordPress

Если вы устанавливали WordPress с нуля, то замечали, что из коробки он предоставляет довольно избыточный функционал, например, вставляет в head много лишних тегов: wp-json, xmlrpc, pingback, canonical, feed, emoji, generator, profile, wmlmanifest, link rel next и prev, и тому подобные. Большинству сайтов они ни к чему, и поэтому им стоит избавиться от лишнего хлама.

Что такое WP JSON и как его отключить и удалить

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

В общем, из всего этого описания вам должно быть ясно, что wp-json — пока что совершенно лишнее на вашем сайте, и его надо отключать. К тому же, Яндекс любит выкидывать wp-json в индекс как подраздел сайта. Конечно, это лечится с помощью закрытия от индексирования /wp-json/ в robots.txt , но, всё же, лучше отключить и настроить выдачу ошибки 404 Not Found по этому адресу.

Что неприятно, если не закрыть /wp-json/ , то он предоставляет возможность любым ботам вызнавать довольно конфиденциальную информацию о пользователях. Например, по такому адресу http://example.com/wp-json/wp/v2/users/ будет выдана информация о пользователях сайта с их личными данными: логин, email и прочее, что там указывается.

Чтобы избежать выдачи информации по пользователям WordPress, не отключая WP REST API, можно воспользоваться следующим кодом:

Отключая функционал WordPress REST API, помните, что его используют некоторые популярные плагины, например Contact Form 7 и Yoast SEO. Поэтому, если вдруг у вас перестала работать форма обратной связи, посмотрите, а не отключен ли REST API?

Есть 2 способа избавиться от wp-json, плагин и код.

Отключаем WP JSON REST API с помощью плагина Disable REST API

Для отключения wp-json можно воспользоваться плагином Disable REST API, так как его автор будет поддерживать код в актуальном состоянии в зависимости от возможных изменений в будущих версиях движка WordPress.

Плагин WordPress для отключения wp-json — Disable JSON API

Плагин, конечно, функционал JSON REST API отключит, но вот от раздела /wp-json/ на сайте не избавит. Поэтому, этот вариант немного не то, что нам надо. Идём дальше.

Код для отключения и удаления wp-json и oembed в WordPress

Код взят из разных источников, в основном отсюда, и в том числе, и из вышеуказанного плагина

Код вставляется в functions.php или mu-plugin (желательно).

Результат: вы полностью отключите механизм wp-json на сайте, в поиске будут отсутствовать мусорные страницы, а страница http://example.com/wp-json/ будет отдавать ошибку 404 Not Found

Что такое XML-RPC и как его отключить и удалить

XML-RPC — это протокол вызова процедур, использующий XML для кодирования сообщений и HTTP как транспортный механизм. Проще говоря, это API для WordPress, с помощью которого можно удалённо управлять данными сайта.

Не напоминает WP JSON REST API? Так и есть, xmlprc — его предок, который используется WordPress в текущее время. Почему один замещают другим — возможно, ответ кроется в громоздкости формата XML по сравнению с JSON. Да и не особо это важно в свете текущей статьи. Главное — как избавиться от xmlrpc, не навредив сайту.

Просто удалить файл xmlrpc.php из корня сайта нельзя — им пользуются некоторые популярные плагины навроде JetPack.
Чтобы решить вопрос верно, вы можете воспользоваться 2 вариантами: плагином или кодом.

Отключаем XML-RPC с помощью плагина Disable XML-RPC Pingback

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

Обратите внимание на POST /xmlrpc.php . Если она присутствует и часто появляется, значит, сайт атакуют, и нужно срочно закрывать XML-RPC.

Полностью XML-RPC отключать нельзя — им пользуются некоторые плагины. Но некоторые методы, позволяющие проводить атаки на сайты, предупредить можно. И в этом помогает плагин Disable XML-RPC Pingback.

Плагин WordPress для отключения опасных свойств XML-RPC — Disable XML-RPC Pingback

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

Код для отключения и удаления XML-RPC

Если вам интересно увидеть сам код, отключающий опасные методы XML-RPC, или просто не хочется ставить лишние плагины, можете воспользоваться кодом ниже

Также, существует способ полностью выключить XML-RPC с помощью следующего фильтра, но не рекомендую использовать его, так как он нужен для JetPack и похожих плагинов.

Результат: отключили опасные методы работы механизма XML-RPC для WordPress

Что такое Emoji и как их отключить и удалить

С версии WordPress 4.2 в дистрибутив этой CMS был встроен функционал Emoji. Эмоджи — это набор иконок и смайликов, реализованные в Вордпрессе с помощью библиотеки Twemoji от Twitter, и сами по себе неплохи. Если у вас развлекательный сайт или блог, в котором они будут уместны, стоит задуматься, удалять ли их с сайта. Но большинству остальных сайтов, что не используют данный функционал, стоит устранить его, так как смайлики Emoji в WordPress подгружаются с внешних серверов WordPress.org , да и лишний код в head ни к чему.

Топ-пост этого месяца:  Компания Mozilla выпустила новую версию плагина Test Pilot

Есть 2 способа отключить Emoji, отдельным плагином и просто кодом, причём оба имеют право на жизнь.

Плагин WordPress для отключения Emojis — Disable Emojis

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

В чём преимущество плагинов — их авторы, как правило, следят за обновлениями WordPress и вносят необходимые коррективы в функционал своих плагинов, выпуская обновления, в отличие от нас с вами 🙂 Поэтому, я бы рекомендовал воспользоваться текущим вариантом.

Плагин WordPress для отключения Emojis — Disable Emojis

Учтите, что плагин не вносит изменения в базу данных, которая с версии WordPress 4.2 имеет формат кодировки utf8mb4 , что подразумевает под собой возможность сохранять сами знаки emoji в страницах и записях независимо от наличия или отсутствия Disable Emojis на сайте. При этом, смайлики emoji будут отображаться только в самых современных браузерах.

Код для отключения Emoji в WordPress

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

Код вставляется в functions.php или mu-plugin (желательно).

Результат: удалён вывод javascript-кода поддержки emoji в секции head. Но здесь то же самое, что и с плагином — emoji сохранять в постах можно, но отображаться они теперь будут не во всех браузерах, а только тех, что их поддерживают (как правило, в самых современных).

Удаляем pingback, canonical, meta generator, wlwmanifest, EditURI, shortlink, prev, next, RSS, feed, profile из заголовков head

Настроим редирект с /feed/ на главную

По поводу /feed/ . Если вы хотите дополнительно добавить редирект с http://example.com/feed/ на главную страницу, можете добавить следующий код

Если вы пользуетесь Feedburner, добавляете изменения в .htaccess

Убираем CSS стили .recentcomments

Если вы пользуетесь виджетом Последние комментарии, то WordPress для него пропишет в коде стили css с классом .recentcomment , которые довольно сложно перебить своими. Чтобы не бодаться с этой проблемой, пользуемся следующим кодом

Далее, перейдём к очистке header.php

Удаляем лишний код из header.php

Если в вашей теме WordPress есть header.php , откройте его в любой программе с подсветкой синтаксиса, например Notepad++ или Far Manager.
В секции head найдите лишний код и удалите его.

Удаляем лишний код из head секции

Например, на скрине я выделил код:

В 1 строке — это заголовок, указывающий на то, что на странице используется микроформат XFN. Если вы его не используете (а это, скорее всего, так) — удаляйте.
Во 2 строке — это ссылка, указывающая, по какому адресу оставлять пингбеки. Их мы не позволяем оставлять, поэтому удаляем код.

Кстати, не забудьте проверить, отключены ли у вас пингбеки. Для этого, зайдите в админку в НастройкиОбсуждение ( https://example.com/wp-admin/options-discussion.php ) и убедитесь в том, что галочкой не отмечен пункт Разрешить оповещения с других блогов (уведомления и обратные ссылки) на новые статьи

Запретить оповещения с других блогов (уведомления и обратные ссылки) на новые статьи

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

Не забывайте делать резервные копии изменяемых файлов, чтобы откатить всё назад, если удалили лишнего

По сути, всё, что должно остаться в head в header.php, это что-то примерно следующего содержания

Что не следует удалять из заголовков

Некоторые советуют также удалять dns-prefetch:

Я бы не стал этого делать, потому что dns-prefetch призван ускорить загрузку страниц со внешних источников, а точнее, ресурсов, которые на них располагаются. По адресам, указанным в dns-prefetch , браузер будет делать предварительный резолв, что на медленном интернете может показать себя особенно хорошо.

На этом чистка закончена. Далее пройдёмся по дополнительным пунктам настройки, которые могут пригодиться.

Что ещё пригодится при настройке WordPress

Далее, список советов, что нужно использовать ещё, чтобы оптимизировать работу сайта:

  • Автоматическая простановка заголовка Last-Modified
  • Настройка кеширующего плагина WP Super Cache
  • EWWW Image Optimizer — плагин для сжатия png, jpeg, gif изображений без потери качества
  • Автоматическое проставление атрибута alt. Используем SEO Friendly Images. Плагин не обновлялся уже 2 года, однако, до сих пор исправно работает и пользуется популярностью. Я лично не считаю этот пункт крайней необходимостью, так как у каждого изображения должен быть прописан уникальный alt, а не взят тот, что в названии статьи, но, возможно, кому-то этот пункт покажется важным.
  • Редирект с https на http. Лучше, когда редиректом занимается сервер, а не WordPress, тем самым мы снимаем ненужную нагрузку на систему.
    Изменения добавляем в .htaccess в корне сайта, в самое начало файла

WordPress REST API — Базовое руководство

WordPress REST API

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

WordPress REST API – самый волнующий проект для платформы с тех пор, как появились произвольные типы записей в WordPress 2.9 и 3.0. Я действительно так считаю.

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

Давай поговорим о том, что собой представляет новый API, почему он так важен, а также ответим на некоторые важные вопросы, связанные с API.

Что такое JSON REST API?

Давайте сначала дадим определение акронимам. Это может показаться утомительным для опытных разработчиков, однако это – хороший способ настроиться на нужный лад.

API: Application Program Interface (интерфейс программирования приложений)

API – это достаточно широкий термин. Любая программа – API. Если у вас имеется некоторый вид конструкции в языке программирования (к примеру, в PHP), и конструкция позволяет выполнять задачи программирования, то в таком случае можно смело говорить об API.

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

Команда разработчиков создала программный интерфейс, чтобы сделать это возможным. Это – самое простое, дилетантское определение API.

JSON: JavaScript Object Notation

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

JSON делает возможным взаимодействие между WordPress и мобильными приложениями, поскольку JSON – общий для них формат данных, т.е. вы можете, к примеру, создавать данные на стороне WordPress и передавать их в JSON, чтобы их можно было считать уже на стороне мобильного приложения. Такие отношения можно выстроить не только между WordPress и мобильными приложениями; эти отношения могут быть самыми разными, что делает все более реалистичной фразу «Wordpress – платформа для мобильных приложений».

JSON выглядит ужасно, если вы взглянете на его «сырые данные». К примеру, сайт Post Status обладает включенным WordPress REST API, поэтому, если вы перейдете по адресу https://poststatus.com/wp-json/posts , вы увидите все последние записи в формате JSON. Для человеческого глаза это не слишком привлекательно, но вот для языка программирования это вполне красиво.

REST: Representational State Transfer

REST API – это архитектурное предпочтение. Большинство REST API, включая WP REST API, основаны на HTTP. Это означает, что основные действия REST API – это HTTP-действия: POST, GET, PUT, DELETE.

Таким образом, с помощью REST API мы можем считывать данные и управлять ими по HTTP.

Wikipedia объясняет RESTful API гораздо лучше, чем я; вот основное определение:

Различные API, которые придерживаются архитектурных ограничений REST, обычно называют RESTful. RESTful API, основанные на HTTP, определяются при помощи следующих аспектов:

  • Базовый URI; к примеру, http://example.com/resources/
  • Internet media type (медиа-тип) для данных. Обычно используется JSON, но могут применяться и другие валидные медиа-типы (к примеру, XML, Atom, микроформаты, изображения и т.д.)
  • Стандартные HTTP-методы (GET, PUT, POST, DELETE)
  • Гипертекстовые ссылки, указывающие на состояние
  • Гипертекстовые ссылки, указывающие на связанные ресурсы

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

Что такое WordPress REST API?

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

WordPress REST API – это общий интерфейс данных и программирования, который позволяет считывать и записывать информацию в WordPress через разные приложения. Теперь разработчикам, которые нацелены на работу с WordPress, не понадобится углубленно разбираться в WP.

Как можно использовать WordPress REST API?

Разработчики смогут выполнять практически все функции управления данными и считывания данных, которые возможны в PHP, воспользовавшись новым API. Что это означает? Это означает многое.

Благодаря JSON API, фронтэнд WordPress можно «отвязать» от WordPress. К примеру, разработчики могут попросту обойти механизм шаблонов WordPress, используя API. Они могут даже хранить бэкэнд WordPress и фронтэнд сайта в разных стеках сервера, поскольку считывать данные можно при помощи API.

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

  • New York Times используют WordPress REST API для самых разных вещей. Они в состоянии использовать API в комбинации со своей собственной CMS. Они могут легко получать данные WordPress для размещения их на главной странице и в других участках сайта. Также они используют REST API для прямых трансляций с разных событий.
  • Bloomberg Politics используют WordPress для публикации материалов, однако если вы посмотрите на фронтэнд, вы никогда об этом не догадаетесь. Я не думаю, что они используют официальный WordPress REST API, однако, в принципе, возможно все.
  • Mashable используют WordPress для публикации материалов, однако их фронтэнд не напоминает WordPress. Они тоже используют произвольную реализацию, на которую они перешли еще до того, как официальный REST API был выпущен.

Эти три сайта используют REST API во фронтэнде. Однако приложения могут выходить далеко за рамки этих примеров.

WordPress как приложение

Если вам интересен реальный пример, вы можете посмотреть презентацию K. Adam White с WordCamp San Francisco 2014, в которой он рассказывает о том, как его команда использовала WordPress в качестве CMS для приложения node.js. Презентация раскрывает тот потенциал применения API, о котором я говорил.

Изучить готовый репозиторий ExpressPress , который Адам отметил в своей презентации – значит получить полезный опыт.

Произвольные админки WordPress

Администрирование WordPress не обязательно должно проходить через админку WordPress. С помощью REST API вы можете создавать, редактировать и удалять контент абсолютно любым способом.

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

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

Другие сервисы, как, к примеру, Happy Tables, также имеют произвольные панели администратора WordPress. В будущем создавать такие админки станет еще проще, поскольку REST API вынесет всю существующую в WordPress функциональность в API, и разработчикам уже не понадобится раз за разом создавать колесо.

Интеграция с приложениями

Также WordPress сможет проще взаимодействовать с разными приложениями. Раньше приложения, взаимодействующие с WordPress, использовали для этого XML-RPC. Благодаря REST API выросла возможность надежного выполнения комплексных функций. Можно будет очень легко создать мобильное приложение, которое сможет не только читать данные WordPress, но и создавать, редактировать, а также удалять эти данные.

Мобильное приложение может быть написано на любом языке, будь то Objective-C, Swift и т.д., и взаимодействовать с WordPress.

Пример такого подхода в действии – AppPresser. AppPresser — это фреймворк разработки приложений, который интегрируется с WordPress REST API для простого создания приложений WordPress.

Однако вы не ограничены только лишь созданием приложений с помощью инструментов, таких как AppPresser. Люди могут иметь одну область хранения данных (WordPress), на основе которой будет функционировать и сайт, и приложение. Кроме того, приложения могут соединяться с базой данной WordPress напрямую через API.

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

WordPress может предоставить превосходный фундамент для управления пользователями, управления контентом, и многого другого – снижая объем работ, которые необходимо выполнить разным стартапам при создании прототипа мобильного приложения. REST API показывает, что мобильное приложение может выглядеть как угодно; можно использовать такой инструмент, как WordPress, чтобы реализовать многочисленные внутренние связи.

Когда WordPress REST API появится в ядре?

REST API находится в процессе активной разработки.

Если вы хотите следить за разработкой WordPress REST API, вы можете пойти следующими путями.

Знайте, что новая главная версия находится в процессе разработки, поэтому есть определенное несоответствие между 1.1.x и грядущей версией в плане информации, кода и документации. Новая версия – и значительно реструктуризированная – уже примерно 7 месяцев находится в разработке.

Официальная страница плагина WordPress.org[/link] тесно синхронизирована с последним релизом 1.x, хотя и отстает от нескольких коммитов. Плагин создал Райан Маккью, который является руководителем проекта и основным автором плагина.

WP API Github – страница, где идет активное отслеживание ошибок, управление версиями и обработка релизов. API имеет свой собственный аккаунт на Github, а также несколько смежных репозиториев.

Чтобы понять состояние WP REST API, надо мыслить в терминах версий Develop, Master, and Stable.

  • Репозиторий плагина WordPress.org – это Stable версия WP API.
  • Мастер-ветвь Github – это бета-версия следующего релиза
  • Develop-ветвь Github – это все активные разработки

Если вы используете REST API в продакшне, вы должны использовать только версию WordPress.org. Версии Master и Development могут использоваться только для тестирования и разработки.

Улучшения, которые появятся в новой версии

Долгий цикл разработки новой версии REST API объясняется тем, что была запланирована масштабная реконструкция проекта.

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

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

  • Будут добавлены новые функции, которые позволят регистрировать произвольные конечные точки с пространствами имен и версиями. Рейчел Бейкер показал Gist с примерами таких конечных точек. Это означает, что темы и плагины смогут расширять API, увеличивая его мощь.
  • В новой версии будет добавлено создание комментариев и обработка редактирования
  • Команда также работает над поддержкой конечных точек опций, чтобы можно было просматривать, редактировать и создавать общие опции сайта, т.е. полное управление сайтом можно будет проводить при помощи API.

Изменения в текущем цикле разработки заняли много времени и потребовали некоторых серьезных архитектурных изменений, однако они позволят добиться долгосрочных преимуществ.

Участники WordPress REST API


Вообще, в проект REST API на Github внесли свой вклад 49 участников. Однако среди них есть важные люди, которые занимаются активным продвижением проекта.

  • Райан Маккью. Райан – главный руководитель проекта, он обычно контролирует выход новых версий. Все началось с его проекта на Google Summer of Code. Он работает на Human Made в основном над проектом Happy Tables.
  • Рейчел Бейкер. Рейчел – это руководитель проекта, и он отвечает за основную разработку, а также за обучение и продвижение. Он работает на 10up как старший веб-инженер.
  • Дэниэл Баххубер. Дэниэл участвует в ежедневных обсуждениях, и также делает активные коммиты в проект. Он работает на себя и является временным техническим директором в Fusion.
  • Джо Хойл. Джо участвует в ежедневных обсуждениях, и также делает активные коммиты в проект. Он является соучредителем Human Made.

Помимо них, есть еще около 400 человек, которые посещают канал #core-restapi в Slack. Все они заслуживают продолжительных оваций.

Основы использования WordPress REST API

Новый API подойдет людям, которые знакомы с другими REST API. Однако, если вы плохо знакомы с этими вещами, то в таком случае даже с документацией вы можете запутаться. Я знаю, о чем говорю.

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

Давайте рассмотрим несколько простых примеров считывания данных с помощью GET.

URL для получения контента с сайта Post Status будет выглядеть следующим образом:

Чтобы получить контент с параметрами WP_Query, вам нужно использовать следующее:

Чтобы получить контент произвольного типа записей, вы должны ввести следующее:

Чтобы получить контент произвольного типа записей с теми же самыми параметрами WP_Query, вы должны ввести следующее:

Перейдя по этим URL, вы увидите JSON-данные. Попробуйте ввести какой-нибудь из этих URL в браузер, чтобы увидеть возвращенные данные.

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

Эти URL возвращают данные, однако, естественно, вам нужно будет получать эти данные программно. Вы можете сделать это в WordPress-сборке (или вне ее) при помощи двух общих методов: PHP и AJAX.

Обработка данных будет напоминать обработку любых других JSON-данных. Естественно, вы можете запрашивать не только записи, но я просто хотел показать базовую концепцию.

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

WordPress REST API — для чего и что это такое?

Сегодня мы поговорим о WordPress REST API (некоторые называют его JSON REST API), грядущем дополнении к ядру WordPress, которое сейчас доступно в виде плагина и изначально появилось в версии 4.1. Сейчас же нас ждет двухступенчатая интеграция в версиях 4.4 и 4.5. Если разработчики очень восторженно относятся к появлению этой новой функции, то среднестатистический пользователь WordPress может не понять всего этого восторга, хотя появление данной функции можно назвать знаковой вехой в истории WordPress. Давайте же узнаем, что такое WordPress REST API, и что его появление означает для будущего WordPress, а также, почему это пишется заглавными буквами.

Что такое API?

Давайте начнем с базовых вещей и терминологии, так как название JSON REST API полностью составлено из акронимов. Первые три буквы “API” – это Application Programming Interface (интерфейс программирования приложений).

Для чего нужен API?

Базово API нужен для соединения разных элементов программного обеспечения, и вы можете воспринимать его, как USB-порт.

USB-порты используются для связи различных типов девайсов с вашим компьютером. Это могут быть принтеры, элементы управления компьютером, портативные жесткие диски, телефоны и т.д. Через данный порт компьютер и девайс могут взаимодействовать друг с другом, обмениваясь информацией. API – это что-то похожее, только он связывает не девайсы, а программы. Таким образом, программы могут обмениваться данными в строго оговоренных рамках, взаимодействуя друг с другом. Вы постоянно используете API, даже не замечая этого. Например, если вы используете сторонние программы, чтоб воспользоваться своим аккаунтом в Twitter, то это действие выполняется посредством Twitter API. Благодаря API-технологии, я могу находиться в Twitter каждый день, даже не заходя на Twitter-сайт.

API также необходим, когда вы используете сервисы email-маркетинга, типа MailChimp, на своем WordPress-сайте. Если говорить коротко, то интерфейс программирования приложений позволяет разработчикам использовать функции и данные других веб-приложений или сервисов для своего собственного программного обеспечения в совершенно безопасном русле.

Что значит REST и JSON?

REST — это сокращение от английского Representational State Transfer (передача состояния представления). REST описывает определенную архитектуру API, разработанную таким образом, чтоб он был легковесным, дружественным к пользователю и подходящим для широкого спектра сервисов. Google, Facebook и Twitter используют REST-стиль для многих своих API, по той простой причине, что REST создан на основе HTTP – протокола, который повсеместно используется в сети, вместе со своим более безопасным кузеном HTTPS. Благодаря своей высокой совместимости с современными технологиями, API, созданные на базе REST, набирают все большую популярность в сети, и не только в случае WordPress. Практически любая программа, которая имеет доступ в интернет, может использовать этот тип API. Похоже, это несет большие возможности для взаимодействия программ, не так ли?

JSON – это текстовый формат обмена данными, основанный на JavaScript. Особенность JSON заключается в том, что это формат, дружественный и для человека, и для машины. Разработчики могут писать и читать на нем, как на обычном языке программирования, а компьютеры могут его легко парсить и генерировать. Как бы то ни было, самое главное его преимущество заключается в том, что основные языки программирования уже имеют кодификаторы и декодификаторы, чтоб конвертировать структуру данных в JSON или наоборот. Это значит, что интерфейс JSON может выступить в роли своеобразного переводчика между двумя приложениями, которые были написаны на разных языках, и в другом случае никогда не могли бы взаимодействовать друг с другом.

Формат JSON может стать чем-то вроде универсального соединительного звена на просторах интернета, и по этой причине WordPress и другие крупные сервисы решили воспользоваться этим преимуществом. Вдобавок ко всему, в WordPress JSON также заменяет немного устаревший XML-RPC-стандарт, который более сложен в использовании.

Под всем сказанным можно сделать следующие выводы:

  • API — это разъем на любом программном обеспечении;
  • REST – это дизайн данного разъема;
  • JSON – это кабель с универсальными вилками на концах;

JSON REST API и WORDPRESS

Ладно, мы поняли, что штука эта — полезная. Но разве WordPress уже не использует эти API в своей структуре? Ну да, один есть, и это — WordPress API. Используется он для WordPress-плагинов, и работает только с внутренними процессами WordPress. Но если мы говорим о взаимодействии с программным обеспечением извне, то этот API – устарел и не очень дружественен к пользователю. Новый WP API гораздо более универсален, так как создан для того, чтоб, WordPress мог с легкостью взаимодействовать с другими веб-сайтами и сервисами в интернете. С помощью универсального API можно отображать и сохранять контент с других сайтов и приложений, не зависимо от того, используется ли там движок WordPress или нет. Все верно, данный API позволяет платформе WordPress стать системой управления контентом, подходящей для любого приложения, написанного на любом языке.

Плюс, тоже самое работает и в обратном порядке. Все, что есть на вашем WordPress-сайте, будет также доступно и на любом внешнем веб-сайте и сервисе, включая:

  • Записи;
  • Страницы;
  • Пользовательские типы записей;
  • Медиа;
  • Комментарии;
  • Таксономии;
  • Пользователи;
  • И многое другое

Это работает, потому что в основе всего лежит HTTP, который доступен везде. Протокол позволяет сайтам посылать, создавать, читать, обновлять или удалять запросы между двумя сторонами. В HTTP команды POST, GET, PUT, и DELETE являются эквивалентами. Кроме того, API понимает URLы, структура которых похожа на директории, а как мы знаем, похожие ссылки как раз использует WordPress и другие системы управления контентом.

Суммируя сказанное, моно сказать, что если вы захотите перенести все записи определенного пользователя с вашего сайта на другой ресурс, то вы можете просто воспользоваться директивой —

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

Здорово, но безопасно ли это? Хорошая новость заключается в том, что WordPress REST API имеет встроенные меры безопасности. Волшебное слово здесь – это аутентификация. У интерфейса есть и куки-аутентификация, и OAuth-аутентификация. Таким образом, куки-аутентификация работает для плагинов и тем, а OAuth используется для аутентификации мобильных и веб-клиентов, а также клиентов настольных компьютеров. Оба метода лимитируют сторонние действия на вашем сайте. Так как API созданы для того, чтоб платформы могли лимитировано обмениваться строго определенной информацией, то ваши данные в полной безопасности.

Что значит WP API для WORDPRESS?

Эта одна из тех вещей, которой могут воспользоваться только разработчики? Как это изменение повлияет на среднестатистического пользователя сайта? Добавление WordPress REST API — это первый шаг к превращению WordPress в полноценную платформу для веб-приложений, так как он открывает платформу WordPress для взаимодействия со всем интернетом.

Как было сказано выше, API позволяют делать те же вещи, что позволяла делать WordPress админ-панель, но не в обход пользовательскому интерфейсу. Это значит, что WordPress-бэкенд больше не нужен.

  • Любой разработчик может создать альтернативную WordPress админ-панель фактически на основе любого девайса или платформы.
  • Новый API может привнести множество альтернатив стандартному бэкенду, включая мобильные приложения, доступные для администрирования WordPress
  • Так как поддержка JSON изначально встроена в iOS и Android, то монополия WordPress-приложений станет историей.
  • Сторонний контент также будет доступен WordPress. И даже более того, API делает WordPress-контент независимым от языка программирования и среды, так что вы можете брать материалы из любого источника и отображать их, как захотите.
  • Ruby on Rails и другие фреймворки получат доступ к функциональности WordPress со всеми вытекающими из этого возможностями, и преимущества этих областей станут доступны для WordPress-пользователей.

Эта новость особенно порадует разработчиков, которые работают с фронтендом, так как они смогут менять фронтенд, как угодно, не затрагивая бэкенд.

Для не-разработчиков эта технология может быть использована для создания новых и решений для интеграции контента из других веб-профилей с их WordPress-сайтами.

WordPress входит в новую эру

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

Но интереснее всего звучит возможность использования WordPress-продуктов, к примеру, плагинов, на других платформах, и системах управления контентом.

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

В итоге:

Как вы сами видите, новый WordPress REST API трансформирует WordPress в нечто новое. Он откроет WordPress всему интернету, и позволит платформе органичнее взаимодействовать со сторонними приложениями и сервисами. Появление WordPress REST API порадует не только разработчиков, но и обычных пользователей, которые получат множество новых возможностей.

Как открыть страницу поста в wordpress rest api?

Судя по документации, чтобы получить пост, вам нужно вызвать:
GET /wp/v2/posts/
Собственно в чем проблема?

как сделать вывод именно того поста по которому нажали

Передать именно тот id в запрос. Если вопрос в этом — то id можно взять, например из data-* атрибута, предварительно туда запихнув его в момент рендера всех постов на странице.

Если вопрос в том, как открыть его по отдельному роуту, то вам нужен react-router и роут вида:

Как использовать REST API WordPress

Divi: самая простая тема WordPress для использования

Divi: Лучшая тема WordPress всех времен!

Более Загрузка 600.000, Divi — самая популярная тема WordPress в мире. Он является полным, простым в использовании и поставляется с более чем бесплатными шаблонами 62. [Рекомендуется]

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

Сегодня преобразование продолжается с приходом WordPress REST API.

В этом руководстве я объясню, что такое API-интерфейс WordPress REST, и покажу, как его использовать.

Но раньше, если вы никогда не устанавливали WordPress, откройте для себя Как установить WordPress блог шаги 7 et Как найти, установить и активировать WordPress тему на своем блоге

Тогда давайте вернемся к тому, почему мы здесь

Что такое REST API

Для простоты, поймите, что REST API WordPress, позволяет взаимодействовать с ядром WordPress без прохождения через его графический интерфейс. Это означает разделение ядра и GUI. С помощью этого API, например, вы можете создать новую статью, не имея доступа к приборная панель, REST API будет включен в ядро ​​при выпуске версии 4.4 к декабрю.

Учитывая характер предмета этого урока, необходимо хорошее знание PHP и WordPress.

Что нам нужно для этого урока

Для того, чтобы начать с REST API, вам понадобится плагин REST API а также последняя версия WordPress. У тебя это есть? Если нет, понять, почему. Представления об HTTP API WordPress также будут хорошими компаниями для удаленных звонков.

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

Теперь создайте виджет в вашей локальной установке. Вот основной код:

/ **
* Имя плагина: REST API Test Widget
* Плагин URI: http://the-site-of-your-widget-ici.com
* Описание: этот виджет извлекает статьи, используя REST API
* Версия: 1.0
* Автор: Ваше имя
* Авторский URI: http://your-site.com
*/

Mes_Articles_Widget класс расширяет

public function __construct () <
$ w >
‘classname’ => ‘widget-test-rest-api’,
‘description’ => ‘Виджет, который получает статьи с помощью REST API с другого сайта’
);

parent :: __ construct (‘widget-test-rest-api’, ‘REST API Trial Widget’, $ widget_details);

форма публичной функции ($ instance) <
$ title = (! empty ($ instance [‘title’]))? $ instance [‘title’]: »;
>

get_field_name (‘title’);?>»> Название:
get_field_id (‘title’);?>» name = » get_field_name (‘title’);?>» type = «text» value = » » />

>
общественные функции виджет ($ арг, $ экземпляра) <
echo $ args [‘before_widget’];
if (! empty ($ instance [‘title’])) <
echo $ args [‘before_title’]. apply_filters (‘widget_title’, $ instance [‘title’], $ instance, $ this-> base_id). $ Args [ ‘after_title’];
>
// функциональный код виджета здесь
echo $ args [‘after_widget’];
>
>
add_action ( ‘widgets_init’, функция () <
register_widget (‘My_Articles_Widget’);
>);

В каталоге плагинов вашего локального сайта создайте папку с именем виджет-тест-отдых-апи. В этой папке создайте файл с именем виджет-тест-отдых-api.php и вставьте код выше.

Этот код содержит заголовок расширений (комментарии в начале кода), который позволяет WordPress знать, что это расширение. Затем следует минимальный код создания виджета, увеличенный на несколько строк.

Мы уделим больше внимания функции виджет ()потому что внутри него построено отображение виджета. Поэтому именно в этой функции мы будем выполнять вызовы, используя HTTP API.

Получить статьи

Нам потребуется некоторая информация для запроса производственного веб-сайта или веб-сайта в Интернете. Это будет так или иначе вопрос, заданный ядром WordPress нашего онлайн-сайта. Это базовый путь API, используемый маршрут, используемый терминатор, заголовки и параметры.

Сублимируйте свои иллюстративные изображения, обнаруживая Как создавать интерактивные изображения в блоге WordPress

Базовый путь REST API WordPress всегда / Wp-JSON / в.ч. / v2 /, Таким образом, полный путь будет http://votre-domaine.com/wp-json/wp/v2/.

Маршрут, используемый для получения предметов / сообщений, Что делает полный маршрут для статей http://votre-domaine.com/wp-json/wp/v2/posts.

Каждый маршрут может иметь несколько концовок, различающихся по используемому методу HTTP. Таким образом, дорога к статье может быть / Сообщений / 291. Это дорога 3 окончания:

ПОЛУЧИТЬ : чтобы получить статью
ПОЛОЖИЛ : обновить статью
УДАЛИТЬ : удалить статью.

Вы ищете лучшие темы и плагины WordPress?

Загрузите лучшие плагины и темы WordPress на Envato и легко создайте свой сайт. Уже больше, чем 49.720.000. [ЭКСКЛЮЗИВ]

Отключаем REST API WordPress

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

Плагин REST API намного облегчает извлеченте данных с помощью запросов GET. Это крайне полезно для разработки приложений с WordPress.

Но JSON REST API потенциально открывает ваш сайт для нового фронта DDoS атак, что отнимает много ресурсов и замедляет сайт. Помимо потенциальной угрозы безопасности сайта, данный плагин может создавать дубли страниц, что негативно сказывается на поисковую выдачу.

Для большинства пользователей REST API WordPress совершенно бесполезный и ненужный функционал.

Отключаем Rest Api WP JSON

Перед отключением советую проверить наличие функционала API WP JSON на вашем сайте. Для этого достаточно посмотреть исходный код Главной страницы. Если в коде присутствуют такие ссылки, значит REST API JSON подключен.

Из данного кода видно, что API ВЗАИМОДЕЙСТВУЕТ со встраиваемой библиотекой Oembed json+oembed . ЕЕ тоже отключаем, если вы не собираетесь выводить вставки из других сайтов на своем.

Чистим WordPress

Если вы устанавливали WordPress с нуля, то замечали, что из коробки он предоставляет довольно избыточный функционал, например, вставляет в head много лишних тегов: wp-json, xmlrpc, pingback, canonical, feed, emoji, generator, profile, wmlmanifest, link rel next и prev, и тому подобные. Большинству сайтов они ни к чему, и поэтому им стоит избавиться от лишнего хлама.

Что такое WP JSON и как его отключить и удалить

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

В общем, из всего этого описания вам должно быть ясно, что wp-json — пока что совершенно лишнее на вашем сайте, и его надо отключать. К тому же, Яндекс любит выкидывать wp-json в индекс как подраздел сайта. Конечно, это лечится с помощью закрытия от индексирования /wp-json/ в robots.txt , но, всё же, лучше отключить и настроить выдачу ошибки 404 Not Found по этому адресу.

Что неприятно, если не закрыть /wp-json/ , то он предоставляет возможность любым ботам вызнавать довольно конфиденциальную информацию о пользователях. Например, по такому адресу http://example.com/wp-json/wp/v2/users/ будет выдана информация о пользователях сайта с их личными данными: логин, email и прочее, что там указывается.

Чтобы избежать выдачи информации по пользователям WordPress, не отключая WP REST API, можно воспользоваться следующим кодом:

Отключая функционал WordPress REST API, помните, что его используют некоторые популярные плагины, например Contact Form 7 и Yoast SEO. Поэтому, если вдруг у вас перестала работать форма обратной связи, посмотрите, а не отключен ли REST API?

Есть 2 способа избавиться от wp-json, плагин и код.

Отключаем WP JSON REST API с помощью плагина Disable REST API

Для отключения wp-json можно воспользоваться плагином Disable REST API, так как его автор будет поддерживать код в актуальном состоянии в зависимости от возможных изменений в будущих версиях движка WordPress.

Плагин WordPress для отключения wp-json — Disable JSON API

Плагин, конечно, функционал JSON REST API отключит, но вот от раздела /wp-json/ на сайте не избавит. Поэтому, этот вариант немного не то, что нам надо. Идём дальше.

Код для отключения и удаления wp-json и oembed в WordPress

Код взят из разных источников, в основном отсюда, и в том числе, и из вышеуказанного плагина

Код вставляется в functions.php или mu-plugin (желательно).

Результат: вы полностью отключите механизм wp-json на сайте, в поиске будут отсутствовать мусорные страницы, а страница http://example.com/wp-json/ будет отдавать ошибку 404 Not Found

Что такое XML-RPC и как его отключить и удалить

XML-RPC — это протокол вызова процедур, использующий XML для кодирования сообщений и HTTP как транспортный механизм. Проще говоря, это API для WordPress, с помощью которого можно удалённо управлять данными сайта.

Не напоминает WP JSON REST API? Так и есть, xmlprc — его предок, который используется WordPress в текущее время. Почему один замещают другим — возможно, ответ кроется в громоздкости формата XML по сравнению с JSON. Да и не особо это важно в свете текущей статьи. Главное — как избавиться от xmlrpc, не навредив сайту.

Просто удалить файл xmlrpc.php из корня сайта нельзя — им пользуются некоторые популярные плагины навроде JetPack.
Чтобы решить вопрос верно, вы можете воспользоваться 2 вариантами: плагином или кодом.

Отключаем XML-RPC с помощью плагина Disable XML-RPC Pingback

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

Обратите внимание на POST /xmlrpc.php . Если она присутствует и часто появляется, значит, сайт атакуют, и нужно срочно закрывать XML-RPC.

Полностью XML-RPC отключать нельзя — им пользуются некоторые плагины. Но некоторые методы, позволяющие проводить атаки на сайты, предупредить можно. И в этом помогает плагин Disable XML-RPC Pingback.

Плагин WordPress для отключения опасных свойств XML-RPC — Disable XML-RPC Pingback

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

Код для отключения и удаления XML-RPC

Если вам интересно увидеть сам код, отключающий опасные методы XML-RPC, или просто не хочется ставить лишние плагины, можете воспользоваться кодом ниже

Также, существует способ полностью выключить XML-RPC с помощью следующего фильтра, но не рекомендую использовать его, так как он нужен для JetPack и похожих плагинов.

Результат: отключили опасные методы работы механизма XML-RPC для WordPress

Что такое Emoji и как их отключить и удалить

С версии WordPress 4.2 в дистрибутив этой CMS был встроен функционал Emoji. Эмоджи — это набор иконок и смайликов, реализованные в Вордпрессе с помощью библиотеки Twemoji от Twitter, и сами по себе неплохи. Если у вас развлекательный сайт или блог, в котором они будут уместны, стоит задуматься, удалять ли их с сайта. Но большинству остальных сайтов, что не используют данный функционал, стоит устранить его, так как смайлики Emoji в WordPress подгружаются с внешних серверов WordPress.org , да и лишний код в head ни к чему.

Есть 2 способа отключить Emoji, отдельным плагином и просто кодом, причём оба имеют право на жизнь.

Плагин WordPress для отключения Emojis — Disable Emojis

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

В чём преимущество плагинов — их авторы, как правило, следят за обновлениями WordPress и вносят необходимые коррективы в функционал своих плагинов, выпуская обновления, в отличие от нас с вами 🙂 Поэтому, я бы рекомендовал воспользоваться текущим вариантом.

Плагин WordPress для отключения Emojis — Disable Emojis

Учтите, что плагин не вносит изменения в базу данных, которая с версии WordPress 4.2 имеет формат кодировки utf8mb4 , что подразумевает под собой возможность сохранять сами знаки emoji в страницах и записях независимо от наличия или отсутствия Disable Emojis на сайте. При этом, смайлики emoji будут отображаться только в самых современных браузерах.

Код для отключения Emoji в WordPress

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

Код вставляется в functions.php или mu-plugin (желательно).

Результат: удалён вывод javascript-кода поддержки emoji в секции head. Но здесь то же самое, что и с плагином — emoji сохранять в постах можно, но отображаться они теперь будут не во всех браузерах, а только тех, что их поддерживают (как правило, в самых современных).

Удаляем pingback, canonical, meta generator, wlwmanifest, EditURI, shortlink, prev, next, RSS, feed, profile из заголовков head

Настроим редирект с /feed/ на главную

По поводу /feed/ . Если вы хотите дополнительно добавить редирект с http://example.com/feed/ на главную страницу, можете добавить следующий код

Если вы пользуетесь Feedburner, добавляете изменения в .htaccess

Убираем CSS стили .recentcomments

Если вы пользуетесь виджетом Последние комментарии, то WordPress для него пропишет в коде стили css с классом .recentcomment , которые довольно сложно перебить своими. Чтобы не бодаться с этой проблемой, пользуемся следующим кодом

Далее, перейдём к очистке header.php

Удаляем лишний код из header.php

Если в вашей теме WordPress есть header.php , откройте его в любой программе с подсветкой синтаксиса, например Notepad++ или Far Manager.
В секции head найдите лишний код и удалите его.

Удаляем лишний код из head секции

Например, на скрине я выделил код:

В 1 строке — это заголовок, указывающий на то, что на странице используется микроформат XFN. Если вы его не используете (а это, скорее всего, так) — удаляйте.
Во 2 строке — это ссылка, указывающая, по какому адресу оставлять пингбеки. Их мы не позволяем оставлять, поэтому удаляем код.

Кстати, не забудьте проверить, отключены ли у вас пингбеки. Для этого, зайдите в админку в НастройкиОбсуждение ( https://example.com/wp-admin/options-discussion.php ) и убедитесь в том, что галочкой не отмечен пункт Разрешить оповещения с других блогов (уведомления и обратные ссылки) на новые статьи

Запретить оповещения с других блогов (уведомления и обратные ссылки) на новые статьи

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

Не забывайте делать резервные копии изменяемых файлов, чтобы откатить всё назад, если удалили лишнего

По сути, всё, что должно остаться в head в header.php, это что-то примерно следующего содержания

Что не следует удалять из заголовков

Некоторые советуют также удалять dns-prefetch:

Я бы не стал этого делать, потому что dns-prefetch призван ускорить загрузку страниц со внешних источников, а точнее, ресурсов, которые на них располагаются. По адресам, указанным в dns-prefetch , браузер будет делать предварительный резолв, что на медленном интернете может показать себя особенно хорошо.

На этом чистка закончена. Далее пройдёмся по дополнительным пунктам настройки, которые могут пригодиться.

Что ещё пригодится при настройке WordPress

Далее, список советов, что нужно использовать ещё, чтобы оптимизировать работу сайта:

  • Автоматическая простановка заголовка Last-Modified
  • Настройка кеширующего плагина WP Super Cache
  • EWWW Image Optimizer — плагин для сжатия png, jpeg, gif изображений без потери качества
  • Автоматическое проставление атрибута alt. Используем SEO Friendly Images. Плагин не обновлялся уже 2 года, однако, до сих пор исправно работает и пользуется популярностью. Я лично не считаю этот пункт крайней необходимостью, так как у каждого изображения должен быть прописан уникальный alt, а не взят тот, что в названии статьи, но, возможно, кому-то этот пункт покажется важным.
  • Редирект с https на http. Лучше, когда редиректом занимается сервер, а не WordPress, тем самым мы снимаем ненужную нагрузку на систему.
    Изменения добавляем в .htaccess в корне сайта, в самое начало файла

Топ-пост этого месяца:  Улучшаем ссылки для печати веб-страниц с помощью JavaScript
Добавить комментарий