Руководство для начинающих разработчиков по использованию собственных SQL запросов в WordPress

Прежде всего хочется отметить одну вещь. За все время моей карьеры веб-разработчика было не так уж и много случаев, когда приходилось получать что-то из базы данных WordPress прямыми SQL запросами. Чаще всего встроенные в ядро механизмы справлялись с задачей. Методы  WP_Query, WP_Term_Query, WP_User_Query позволяют выполнять достаточно сложные запросы без необходимости писать свои команды SQL. Но бывают ситуации, …

Подробнее

Лучшие практики PHP-разработки на WordPress

Оригинал: https://10up.github.io/Engineering-Best-Practices/php/

Полезные советы по улучшению производительности, безопасности и чистоте кода вашего проекта от компании 10Up — ведущих разработчиков тем и плагинов для WordPress. Крайне рекомендуется к прочтению и многократному повторению материала всем начинающим (и не только!) WP разработчикам. Многие вопросы кажуться банальными и очень простыми в реализации, но тем не менее неправильные и не оптимальные решения встречаются на каждом первом проекте, сделанном с помощью WordPress. Эта статья позволит если не решить все проблемы разработки на PHP для WordPress, то как минимум значительно сократить их число.

Подробнее

Использование PHPCS линтера в WordPress с WPCS стандартом

В этой статье мы поговорим о том, что такое линтер. Рассмотрим какие линтеры бывают. Поговорим о важности его использования при разработке проектов. Поговорим о том что такое WPCS (WordPress Coding Standards). Рассмотрим как можно интегрировать и настроить PHPCS для WordPress проекта. Так-же мы затронем применение PHPCS в Github Actions. .wpj-jtoc.—jtoc-theme-basic-light.—jtoc-has-custom-styles { —jtoc-numeration-suffix: «. «; —jtoc-numeration-color: …

Подробнее

Docker с WSL2 на Windows

.wpj-jtoc.—jtoc-theme-basic-light.—jtoc-has-custom-styles { —jtoc-numeration-suffix: «. «; —jtoc-numeration-color: #adadad; } WSL (Windows Subsystem for Linux) — это подсистема Windows, которая позволяет запускать Linux-приложения на компьютере без установки отдельной виртальной машины или дополнительной операционной системы. WSL2 работает на базе гипервизора. И это в свою очередь позволяет запускать полноценное ядро Linux внутри виртуальной машины на компьютере под управлением Windows. …

Подробнее

Установка WordPress через Composer

Хранить файлы ядра WordPress в репозитории проекта можно, но у вас могут возникнуть определенные трудности при таком флоу: сложный процесс обновления ядра WordPress. сложности code review или его отсутствие из-за огромного количества ченжей при замене файлов ядра WP на новую версию. использовать разные версии WordPress для монорепозитория.С этим нам тоже может помочь Composer, но данное …

Подробнее

Деплой кода через PHPStorm

Деплой кода через PHPStorm

Представьте ситуацию, вы разрабатываете проект в котором у вас нет возможности или свободных рук чтобы настроить CI/CD (Continuous Integration/Continuous delivery), или вам просто лень т.к. это ваш собственный проект, где вы работаете один. Вы не хотите тратить много времени на написание таких вещей или просто напросто откладываете их. Решение есть: использовать деплой через PHPStorm. И …

Подробнее

Как вставить изображение в список в WordPress Gutenberg

Как вставить изображение в список в WordPress Gutenberg

Подход модульного редактора Gutenberg создает ощущение организованности, однако его особенности требуют времени на привыкание. Так происходит, например, со списками и встроенными изображениями. Распространенная проблема со списками проявляется, когда нужно вставить изображения в списки. Обычно для того, чтобы вставить изображение в редактор, необходимо добавить блок изображения. Если сделать это внутри списков, то это приведет к поломке, …

Подробнее

attachment_url_to_postid()

Функция позволяет получить ID изображения (не только изображения – любого вложения в WordPress) по URL файла. Возвращает целое число (ID) либо 0, если ничего не найдено. attachment_url_to_postid( $url ) Параметры $urlстрокаобязательный URL медиафайла. Примеры 1. Вывод ID медиафайла Ну начнём с самого лёгкого примера, когда мы используем функцию и выводим результат. $url = ‘https://misha.agency/images/misha-rudrastyh-digital.jpg’; echo attachment_url_to_postid( …

Подробнее

Как отдебажить $wpdb->update()

Сегодня пытался запустить SQL-запрос через $wpdb->update(), и он тупо не срабатывал. Возвращал пустоту. То есть, мы знаем, что метод $wpdb->update() возвращает 0, в случае, если ничего не было обновлено в базе данных нашим запросом, а тут именно ничего не выводилось, когда я пытался распечатать результат через print_r() (думаю по факту возвращалось false). Сегодня я работал …

Подробнее

Программное расширение robots.txt, созданного в Yoast SEO

Обложка к записи Программное расширение robots.txt, созданного в Yoast SEO

В новых версиях плагина Yoast SEO присутствует неприятная ошибка, которая делает виртуальный robots.txt невалидным. Проблема Плагин добавляет туда свой пустой блок, начинающийся с User-agent: * : # START YOAST BLOCK # ————————— User-agent: * Disallow: Sitemap: http://yandex-gpt.com/sitemap_index.xml # ————————— # END YOAST BLOCK Теперь, если мы программно, через фильтр robots_txt, добавим в этот файл свои правила: …

Подробнее

Не работают картинки и импорт в теме Dooplay под WordPress

В связи с блокировкой доступа к базе данных TMDB самим сервисом всех IP-адресов из России и Белоруссии перестал работать импорт фильмов и сериалов и отображение картинок в популярной теме DooPlay от DooThemes, которая берёт данные с этого сервиса. Давайте вместе это и исправим. Чиним импорт фильмов и сериалов Шаг 1 Открываем файл /dooplay/inc/core/dbmvs/init.php и находим …

Подробнее

Развёртывание проекта на VPS при помощи GitHub Actions через rsync

В одной из своих предыдущих статей я показал, как развернуть проект на VPS-сервере с помощью CircleCI. В этой статье я покажу, как проделать аналогичный процесс, но только используя Github Actions. Вот также хорошая статья, которая может вам понравиться, для WordPress разработчика, показывающая, как публиковать плагины в репозитории wp.org с помощью Github Actions. Давайте двигаться дальше. Для продолжения вам …

Подробнее

Манипулирование входящими запросами в REST API WordPress

По мере того, как я занимался интеграцией мобильных приложений с REST API WordPress, возникло несколько ситуаций, когда мне понадобилось проверять, управлять или манипулировать входящими запросами REST API. Существует ряд причин, по которым вы можете захотеть управлять входящими запросами WordPress REST API до того, как они начнут взаимодействовать с основным приложением. В моем случае мне нужно …

Подробнее

Обход санкций иностранных компаний

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

Подробнее

Установка Elementor и Elementor Pro через composer

Разработчики теперь могут установливать Elementor и Elementor Pro через Composer вместо использования веб-браузера. Это можно сделать с помощью нескольких простых команд CLI. Что такое Composer? Composer — это инструмент управления зависимостями в PHP. Он упрощает процесс установки зависимых библиотек в PHP-проектах. Но Composer не содержит плагинов и тем WordPress. Для этого разработчики используют wpackagist.org — сервис с …

Подробнее

Искусственный интеллект в контролах Elementor

Elementor добавил возможности прикрутить искусственный интеллект (ИИ) ко множеству элементов управления, чтобы пользователи могли улучшить свои веб-сайты с помощью оригинального или улучшенного текста, а также пользовательского кодов (HTML & CSS), чтобы повысить свою производительность как создателей веб-сайтов. Разработчики аддонов могут выбирать, включать или отключать кнопку ИИ. Возможности ИИ Решение ИИ в Elementor позволяет пользователям создавать …

Подробнее

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

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

Подробнее