Добавление произвольных типов постов и таксономий в REST API

Если вы не так давно начали работать с REST API, то не могли не заметить, что в официальной документации есть страница для Записей, есть для Страниц, но произвольные типы записей там не присутствуют. Та же самая тема, что есть рубрики и метки, но нет таксономий. В этом уроке мы разберёмся, как добавить маршруты REST API …

Подробнее

Использование проверки на ABSPATH для предотвращения прямого доступа к PHP-файлам

Всё началось с того, что один подписчик из комментериев попросил меня оценить сайты, которые он делал, и в момент, когда я хотел через исходный код открыть файл style.css темы, я случайно открыл папку с темой, т.е. обратился напрямую к index.php. В итоге вот что у меня открылось: Я конечно заменил в этом скриншоте и название …

Подробнее

has_blocks()

Функция позволяет проверить, есть ли блоки Gutenberg внутри контента поста или определённого строкового значения. Возвращает true или false соответственно. has_blocks( $post = null ) Функция заточена на производительность, а не на точность. То есть она не проверяет именно правильность структуры блоков. Если для вас это важно, обратите внимание на функцию parse_blocks(). Параметры $postцелое|строка|WP_Post|null Сюда можно …

Подробнее

register_meta()

Позволяет использовать метаданные с определённым ключом в WordPress REST API. Другими словами, если у вас есть произвольное поле color со значениями например #fff и #000, то вы не сможете использовать его ни при написании запросов к REST API ни в редакторе Gutenberg, например не сможете добавить поле в сайдбары. register_meta( $object_type, $meta_key, $args, $deprecated ); …

Подробнее

Пространства имён при разработке плагинов

Прежде, чем мы начнём, я бы хотел, чтобы вы проверили, какую версию PHP используете. Нам понадобится PHP 5.3 или выше. Проверили? Что же, давайте теперь поговорим о пространстве имён при работе с плагинами WordPress. Также в моём видеокурсе про разработку плагинов есть отдельный урок, посвящённый работе с классами PHP. Для чего нужны пространства имён в …

Подробнее

3 классных сайта на теме Twenty Twenty

Тема для WordPress Twenty Twenty была разработана специально для использования её вместе с редактором контента Gutenberg. И, периодически гуляя по просторам заребужного интернета, её неоднократно можно встретить на различных качественных и живых сайтах. Я обычно добавляю такие сайты в закладки браузера, но затем закладок становится слишком много, и что-то так или иначе теряется. Поэтому сейчас …

Подробнее

Какая на самом деле стоимость разработки сайта на WordPress?

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

Подробнее

Почему post__not_in лучше не использовать?

Параметр WP_Query post__not_in супер-полезен, как минимум с его помощью можно исключать текущий пост, когда выводите похожие посты. Однако для высоконагруженных сайтов это может привести к моментикам с производительностью, потому что использование этого параметра исключает возможность кэширования запроса. Вот допустим пример вывода последних постов на странице поста, но с исключением из цикла текущего поста: $exclude_id = …

Подробнее

delete_site_option()

Позволяет удалить определённую опцию для всей сети WordPress Мультисайт. delete_site_option( $option ) Функция возвращает true, если опция была удалена, false – в остальных случаях. Параметры $option (строка) Название опции для удаления. Очищать для SQL-использования не нужно. Пример if ( delete_site_option( ‘true_option’ ) ) { // Опция успешно true_option удалена } Кодекс WordPress: Опции: add_option(), add_settings_error(), …

Подробнее

delete_site_transient()

Позволяет удалить транзитный кэш с указанным ключом для всей сети WordPress Мультисайт. delete_site_transient( $transient ) Параметры $transient (строка) Название транзита. Очищать для SQL-использования не нужно. Пример // удаляем транзитный кэш для всей сети WordPress мультисайт delete_site_transient( ‘true_cache’ ); Хуки delete_site_transient_{$transient} Этот хук действия срабатывает сразу же при запуске функции. В качестве единственного параметра содержит название …

Подробнее

delete_metadata()

Позволяет удалить метаданные для определённой сущности в WordPress. delete_metadata( $meta_type, $object_id, $meta_key, $meta_value = ”, $delete_all = false ) Возвращает true – в случае успешного удаления, иначе – false. Параметры $meta_type (строка) Тип метаданных, а точнее сущность WP, у которых эти метаданные будем удалять: post – посты (записи, страницы, произвольные типы) term – таксономии user …

Подробнее

set_site_transient()

Позволяет задать или обновить значение транзитного кэша для всей сети WordPress Мультисайт. set_site_transient( $transient, $value, $expiration = 0 ) Возвращает true, если значение кэша было установлено, false – в обратном случае. Параметры $transient (строка) Ключ транзитного кэша, очищать для SQL не нужно, должно быть максимум 167 символов в длину. $value Значение. При передаче массивов и …

Подробнее

get_post_field()

Позволяет получить любое из свойств объекта WP_Post определённого поста в очищенном виде. get_post_field( $field, $post = null, $context = ‘display’ ) Параметры $field строка Обязательный Свойство объекта WP_Post, значение которого нужно получить. $post целое|WP_Post ID или объект определённого поста, информацию о котором получаем. Если ничего не указывать, то будет использоваться текущий пост в цикле. $contextСтрока …

Подробнее

WP-CLI

WP-CLI — это набор команд для командной строки, при помощи которых вы сможете управлять сайтом на WordPress. Этот инструмент очень удобен, потому что: Во-первых, позволит вам быстрее выполнять некоторые задачи, на которые у вас в админке WordPress ушло бы гораздо больше времени. Например, обновление плагинов или генерация случайных постов. Во-вторых, содержит команды, которым и вовсе нет …

Подробнее

Как добавить свой плагин в репозиторий WordPress.org

Совсем недавно я написал для себя плагин, который при активации блокирует изменение дат обновлений постов, даже, если эти посты были отредактированы. Плагин состоял всего из одного файла и из пары десятков строчек кода. Продавать его не было смысла. И тут я подумал, почему бы не добавить его в каталог плагинов wordpress.org/plugins? В целом этот урок …

Подробнее