Рубрика Сниппеты

Простые участки кода, для частого использования и вставки в код сайтов.

Оптимизация скорости загрузки скриптов и стилей через стратегии async & defer в WordPress

async & defer – это очень полезные механики, которые позволяют существенно ускорить загрузку страниц, скриптов и стилей. Рассмотрим новые интерфейсы для внедрения этих стратегий в WordPress & WooCommerce.

robots.txt для WordPress – рабочий пример файла

Провел SEO-аудит сайта при помощи labrika.ru. Оказалось что много технических ошибок. Пришлось колдовать с файлом robots txt. Готового плагина для этих целей у меня нет. Потому пришлось решать вопрос программно.

Протокол REST API JSON в WordPress

Чуть более года назад в WordPress появился родной REST JSON API, разработанный с учетом лучших практик обмена данными и создания AJAX запросов. В основном это нужно для AJAX и ускорения работы сайта, но еще это круто работает для интеграций и обмена данными с другими системами. Кривые AJAX-запросы Большинство программистов в WordPress превратно понимают суть и…

Автоматический сброс кеша на стили (CSS), скрипты и картинки

Частая проблема в разработке это сброс кеша после изменение стилей, скриптов, картинок. Вы изменили что-то, у вас на компьютере это выглядит по новому, а кто-то другой заходит, а у него старые версии файлов, все новшества ломаются. Начинаются удивления, шок, паника…

Журналы (Logs) данных и ошибок в WooCommerce

Начиная с версии 2.7 в WooCommerce внедрили новый метод логирования данных и ошибок. Это удобно для отслеживания процессов в системе и диагностики проблем. Использование Идем в консоль сайта, далее раздел WooCommerce / Статус. Далее вкладка Журналы (Log). Выбираем нужный журнал.…

Отключаем сообщение “JQMIGRATE: Migrate is installed, version 3.3.2”

В WordPress по умолчанию активирован плагин jQuery.Migrate. Это нужно для совместимости со старыми компонентами. Но в 80% случаев в нем нет смысла. Зато он пишет в консоль свое сообщение и доставляет страдания внутреннему перфекционисту. Программное решение через код Либо добавить…

Смена структуры URL на сайте без потери трафика из поиска (SEO)

Попался сайт, на котором были ужасные URL с русскими символами что негативно сказывалось как на удобстве использования сайта, так и на SEO. Исходная ситуация Задача Конвертировать все ссылки в латиницу без потери SEO трафика. Решения: Сохранение трафика из поиска Вот…

Отладка кода через бэктрейс – debug_backtrace()

Возникла ситуация, при которой метод get_term вызывался 20 000 раз. Причем даже на чистой установке WP. Базовая причина была ясна – у нас было 60 постов на странице и у каждого поста около 1000 категорий. Что конечно не очень правильно,…

Вывод типа поста Продукт в топ поиска на Сайте

Возникла задача выводить вверх поиска продукты из WooCommerce. Чтобы они были выше чем посты в блоге. Проблема – часто заходишь на сайт, чтобы найти какой-то продукт в каталоге. Но поиск постоянно сверху выдавал посты из блога с похожими словами. А…

Как изменить ссылку логотипа на странице входа WordPress? (wp login)

Иногда бывает нужно изменить ссылку у логотипа на странице входа WordPress. По умолчанию она ведет на официальный сайт WordPress. Эту задачу можно решить плагинами стилизации или кодом (программно). Плагины раз два Без плагина Можно добавить в файл дочерней темы functions.php

Автоматическая генерация логина пользователя при регистрации

Иногда нужно сделать регистрацию на сайте только по email. Без указания логина. Для этого пригодится сниппет функции которая возвращает логин на основе последнего id в базе пользователей.

Создание эндпоинта и хак сброса пермалинков

В последнее время все чаще сталкиваюсь с задачами где нужно применять ендпоинты в WordPress. Например через ендпоинты собран раздел личного кабинета WooCommerce (My Account). Все подразделы личного кабинета – это ендпоинты. Хотя выглядит как подстраницы. Также часто нужны корневые эндпоинты…

Универсальные методы подключения файлов компонентов для тем и плагинов

В мире WP есть различные методы для получения путей к файлам без хардкода. Это важно, тк папки зависят от опций и могут меняться. Если путь к какому-либо файлу “захардкожен” – мы можем получить разные неожиданные ошибки. А далее каждый раз…

Как получить путь до файла в ядре WordPress?

Бывает нужно получить прямой доступ к файлам ядра WordPress. Для этих целей есть метод get_home_path() Но он часто вызывает ошибку: PHP Fatal error: Call to undefined function get_home_path() Решением может быть такой метод: $path = wp_normalize_path(ABSPATH . ”) Таким методом мы…

Как изменить заголовок (title) страницы в WordPress 4.4?

При обновлении WordPress до 4.4. сломался механизм изменения заголовков. Оказалось что в новой версии логика изменения title изменилась. Пришлось переписать плагин:  Пример нового сниппета для измения заголовока: [code] // Для новой версии WP 4.4.+ function document_title_parts_cb_s($title){ if(is_single() and $id =…

Как подключить сайт WordPress к xml формату Яндекс.Недвижимость?

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

Используйте get_post() вместо global $post

Часто разработчики WordPress используют объявление глобальной переменной $post для доступа к данным текущего поста. Но разработчики ядра уже давно отказались от этой идеи и почти везде заменили ее на $post = get_post();

Поиск, обработка и замена текста между тегами на PHP

Сегодня возникла задача обработки уведомлений по шаблону с ключевыми словами. К примеру “Здравствуйте [[name]]!”. Где name нужно заменить на имя пользователя в письме. Нашел статью… Сегодня я постараюсь объяснить как найти, обработать и заменить текст между тегами используя PHP функции.…

При обрезании текста выводятся кракозябры и знак вопроса

Часто встречается проблема при которой на сайте выводятся знаки вопроса или разные символы кракозяб при обрезании текста. Это происходит при использовании функции substr. Причина в том что эта функция нормально работает только с латиницей на англоязычных сайтах. Русский язык более…

Как установить свою cookie WordPress?

Задача На сайте было два основных раздела: Для персон и Для бизнеса. А также общие разделы “Блог”, “О компании” и т д Главное меню было двух типов: Для бизнеса и Для персон. Заказчику было важно, чтобы выводилось то меню, которое…

Настройки темы WordPress – как добавить свои поля?

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

Как добавить доп. ссылку для плагина в списке плагинов консоли?

Добавление ссылки на страницу настроек плагина, в списке плагинов консоли WordPress существенно повышает удобство. Делается достаточно просто. Берем хук фильтр plugin_action_links. Добавляем код в корневой файл плагина. Вот так: После этого ссылка должна появиться в списке у нашего плагина.

Делаем секцию на всю ширину экрана внутри элемента с ограниченной шириной

Делая очередной сайт встретились с интересной задачей. Нужно было сделать секцию на всю ширину экрана, при том что родительский элемент был ограничен по ширине. Как оказалась – задача с ходу не решалась. В итоге нашли такое решение: Суть в том,…

Вывод HTML, echo, и шаблонов через шорткод в WordPress

Для того чтобы вывести шорткод, или изменить переменную через хук-фильтр, нужно использовать метод return; И засада в том что если мы использовали HTML, echo или подгрузку шаблона в WP, то через return так просто их не вернуть. Текст будет вылазить…

Как отфильтровать посты в WordPress по URL? (query_posts)

Год назад задался вопросом, а можно ли отфильтровать посты в WordPress по URL? Указать параметры запроса и получить результат. Мне сказали что можно делать запросы вида: /tag/a+b+c = отбор постов, которые соответствуют всем 3-м меткам /tag/a,b,c = отбор постов, которые…

Как добавить поля на страницу профиля пользователя

Бывает нужно добавить какое-либо поле или форму на страницу профиля пользователя, чтобы сохранить связанные данные в пользовательские метаполя или куда-либо еще. Как всегда, в WP для этого есть соответствующие хуки, за которые мы можем зацепиться и сделать то что нам…