Автотесты Pest 2 через WP CLI как в Laravel
Мне нравится в Laravel запуск тестов, принципы автотесирования и еще начал изучать Pest для более элегантных и читаемых авто тестов. Пробуем интегрировать это все в WordPress & WP CLI.
Простые участки кода, для частого использования и вставки в код сайтов.
Мне нравится в Laravel запуск тестов, принципы автотесирования и еще начал изучать Pest для более элегантных и читаемых авто тестов. Пробуем интегрировать это все в WordPress & WP CLI.
Я использую тему, которая не очень хорошо дружит с Gutenberg. При этом мне нужно делать на нем лендинги и хотелось делать их быстро и хорошо. Решил поиска решения.
Рассмотрим паттерн module/nomodule, который позволяет разделить загрузку скриптов для старых и новых браузеров.
async & defer – это очень полезные механики, которые позволяют существенно ускорить загрузку страниц и их отрисовку для посетителей. Однако они относительно новые в мире JavaScript. И потому в мире WordPress еще существует много скриптов которые не используют их. Но…
Частая проблема в разработке это сброс кеша после изменение стилей, скриптов, картинок. Вы изменили что-то, у вас на компьютере это выглядит по новому, а кто-то другой заходит, а у него старые версии файлов, все новшества ломаются. Начинаются удивления, шок, паника…
Начиная с версии 2.7 в WooCommerce внедрили новый метод логирования данных и ошибок. Это удобно для отслеживания процессов в системе и диагностики проблем. Использование Идем в консоль сайта, далее раздел WooCommerce / Статус. Далее вкладка Журналы (Log). Выбираем нужный журнал.…
В WordPress по умолчанию активирован плагин jQuery.Migrate. Это нужно для совместимости со старыми компонентами. Но в 80% случаев в нем нет смысла. Зато он пишет в консоль свое сообщение и доставляет страдания внутреннему перфекционисту. Программное решение через код Либо добавить…
Попался сайт, на котором были ужасные URL с русскими символами что негативно сказывалось как на удобстве использования сайта, так и на SEO. Исходная ситуация Задача Конвертировать все ссылки в латиницу без потери SEO трафика. Решения: Сохранение трафика из поиска Вот…
Возникла ситуация, при которой метод get_term вызывался 20 000 раз. Причем даже на чистой установке WP. Базовая причина была ясна – у нас было 60 постов на странице и у каждого поста около 1000 категорий. Что конечно не очень правильно,…
В WordPress можно встретить множество стилей программирования. Это огромный мир, который вмещает в себя разные стили и подходы.
Возникла задача выводить вверх поиска продукты из WooCommerce. Чтобы они были выше чем посты в блоге. Проблема – часто заходишь на сайт, чтобы найти какой-то продукт в каталоге. Но поиск постоянно сверху выдавал посты из блога с похожими словами. А…
Иногда бывает нужно изменить ссылку у логотипа на странице входа WordPress. По умолчанию она ведет на официальный сайт WordPress. Эту задачу можно решить плагинами стилизации или кодом (программно). Плагины раз два Без плагина Можно добавить в файл дочерней темы functions.php
Иногда нужно сделать регистрацию на сайте только по email. Без указания логина. Для этого пригодится сниппет функции которая возвращает логин на основе последнего id в базе пользователей.
В последнее время все чаще сталкиваюсь с задачами где нужно применять ендпоинты в WordPress. Например через ендпоинты собран раздел личного кабинета WooCommerce (My Account). Все подразделы личного кабинета – это ендпоинты. Хотя выглядит как подстраницы. Также часто нужны корневые эндпоинты…
Бывает нужно разрешить загрузку zip файлов или других расширений. Для этого в WP есть хук-фильтр upload_mimes Код можно вставить в файл functions.php темы или в плагин.
В мире WP есть различные методы для получения путей к файлам без хардкода. Это важно, тк папки зависят от опций и могут меняться. Если путь к какому-либо файлу “захардкожен” – мы можем получить разные неожиданные ошибки. А далее каждый раз…
Бывает нужно получить прямой доступ к файлам ядра WordPress. Для этих целей есть метод get_home_path() Но он часто вызывает ошибку: PHP Fatal error: Call to undefined function get_home_path() Решением может быть такой метод: $path = wp_normalize_path(ABSPATH . ”) Таким методом мы…
ссылка How to Upload a File With WordPress’ Secret Native Functions очень полезная статья (повтор ссылки)
Часто бывает нужно разместить текст на фоне пестрой картинки. При этом читаемость текста может сильно ухудшиться. Для этого пригодится CSS-стиль который делает контраст цвета и добавляет тень. Для темного фона: Для светлого фона: Конкретные цвета можно и иногда нужно менять…
При обновлении WordPress до 4.4. сломался механизм изменения заголовков. Оказалось что в новой версии логика изменения title изменилась. Пришлось переписать плагин: Пример нового сниппета для измения заголовока: [code] // Для новой версии WP 4.4.+ function document_title_parts_cb_s($title){ if(is_single() and $id =…
Для подключения сайта WordPress к XML формату Яндекс.Недвижимость необходимо настроить плагин Яндекс.Недвижимость для WordPress, создать файл XML в формате Яндекс.Недвижимость и загрузить его на сервер сайта.
Возникла задача прочистить номера телефонов, которые были во многом забиты со словами и буквами. Так чтобы остались только числа. Нашел такой вариант решения: $str = ‘телефон 8 (9123) 123123’; $int = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC] RewriteRule ^([^/]+) $1 [L] RewriteCond %{HTTP_HOST} ^site\.com RewriteRule ^(.*)$ [R=301,L] RewriteCond %{HTTP_HOST} ^www.site\.com RewriteRule ^(.*)$ [R=301,L]
Часто разработчики WordPress используют объявление глобальной переменной $post для доступа к данным текущего поста. Но разработчики ядра уже давно отказались от этой идеи и почти везде заменили ее на $post = get_post();
Сегодня возникла задача обработки уведомлений по шаблону с ключевыми словами. К примеру “Здравствуйте [[name]]!”. Где name нужно заменить на имя пользователя в письме. Нашел статью… Сегодня я постараюсь объяснить как найти, обработать и заменить текст между тегами используя PHP функции.…
Часто встречается проблема при которой на сайте выводятся знаки вопроса или разные символы кракозяб при обрезании текста. Это происходит при использовании функции substr. Причина в том что эта функция нормально работает только с латиницей на англоязычных сайтах. Русский язык более…
Задача На сайте было два основных раздела: Для персон и Для бизнеса. А также общие разделы “Блог”, “О компании” и т д Главное меню было двух типов: Для бизнеса и Для персон. Заказчику было важно, чтобы выводилось то меню, которое…
В WordPress есть отличный механизм для хранения опций темы или сайта, который поддерживает разные типы полей и прост в настройке. Очень полезен, когда нужно сделать возможность хранения телефона, логотипа или адреса расположения офиса. Чтобы это все можно было менять. Для этого можно…
Добавление ссылки на страницу настроек плагина, в списке плагинов консоли WordPress существенно повышает удобство. Делается достаточно просто. Берем хук фильтр plugin_action_links. Добавляем код в корневой файл плагина. Вот так: После этого ссылка должна появиться в списке у нашего плагина.
Делая очередной сайт встретились с интересной задачей. Нужно было сделать секцию на всю ширину экрана, при том что родительский элемент был ограничен по ширине. Как оказалась – задача с ходу не решалась. В итоге нашли такое решение: Суть в том,…
Для того чтобы вывести шорткод, или изменить переменную через хук-фильтр, нужно использовать метод return; И засада в том что если мы использовали HTML, echo или подгрузку шаблона в WP, то через return так просто их не вернуть. Текст будет вылазить…