Как сделать счётчик загрузок и скрыть ссылку на файл

Часто возникает вопрос — как посчитать число скачиваний файла и спрятать реальную ссылку на скачиваемый файл? Для решения этой задачи надо сделать две вещи: перехватить клик на ссылку и отдать реальный файл пользователю средствами php. Что происходит при клике на фиктивную ссылку, указывающую на несуществующую страницу сайта? WordPress инициализирует ядро и пытается выдать страницу 404. …

Подробнее

Как показать видео в отрывке

На эту тему есть немало странных решений. Похоже, авторы просто не разобрались, как и когда работает шорткод [embed]. Вот простой код, который можно включить в functions.php. /** * Allows to show video in excerpt. * * @param string $post_excerpt * * @return string */ function get_the_excerpt_filter( $post_excerpt ) { $pos = mb_strpos( $post_excerpt, » ); …

Подробнее

Ёлочные шары как затухающий маятник

В одном из проектов заказчик попросил сделать реалистичную анимацию ёлочных шаров, которые начинали бы раскачиваться при касании мышью. Вот что из этого получилось. Проведите мышкой по шарам, и они начнут качаться со все уменьшающейся амплитудой, пока не остановятся через некоторое время. .ny-2018-wrapper { position: relative; overflow: hidden; } .ny-2018-balls { position: absolute; right: 0; top: …

Подробнее

Как сделать переводимыми все пользовательские поля

При переводе с помощью WPML пользовательских полей, созданных плагином ACF, возникает вопрос — как сделать все поля переводимыми? Обычно на сайте таких полей достаточно много (сотни — типичный пример) и кликать в настройках WPML сотни раз — довольно утомительная работа. Ниже пример того, как это можно сделать с помощью кода. Создайте папку acf-helper в корне …

Подробнее

Вышла новая версия плагина WOOF by Category

В новой версии 2.2 плагина WOOF by Category, число активных инсталляций которого превысило одну тысячу, реализовано существенное улучшение быстродействия. На клиентских сайтах с длинным списком категорий товаров происходило существенное замедление генерации страниц WooCommerce с фильтрами WOOF. Причина в том, что плагин WOOF запрашивает свои опции сотни раз за время генерации страницы. Эти вызовы обрабатываются WOOF …

Подробнее

Число активных установок Cyr-To-Lat превысило 100,000

Плагин Cyr-To-Lat, в разработке которого мы принимаем активное участие, недавно превысил отметку в 100,000 активных установок. В последние 10 месяцев рост составил около 30% (с 70,000 активных установок). Новый импульс популярности плагина дали такие особенности, как: Увеличение числа языков транслитерации (сейчас это русский, белорусский, украинский, болгарский, македонский, грузинский, казахский и идиш) Удобный интерфейс таблиц транслитерации …

Подробнее

WPML Beta существенно улучшила производительность: первые отзывы

Команда WPML за последние два месяца полностью переписала плагин String Translation и внесла много улучшений, связанных с производительностью, в плагины Multilingual CMS и Translation Management. Технически, произошёл отказ от хранения строк в базе данных. Типичная админ-страница, которая использует построители страниц, WooCommerce, и некоторые другие большие плагины, могла загружать более 30K строк из базы данных. Вместо …

Подробнее

Cyr-To-Lat официально признан совместимым с WPML

Некоторые дополнения в коде для обеспечения совместимости с WPML, были сделаны в мае 2019 года. Недавно плагин получил официальный статус совместимости с WPML. WPML имеет собственную внутреннюю процедуру тестирования тем и плагинов на предмет подтверждения совместимости. Продукт проходит тщательную проверку у разработчиков из Compatibility Team. После подтверждения соответствия компания выдаёт сертификат (прикреплён к этой записи) …

Подробнее

Как расширить Гутенберг

Редактирование страницы в блочном редакторе имеет неприятную особенность — полоса с макетом страницы слишком узкая, всего 610 пикселей, и это создаёт определённые неудобства при большом количестве колонок. Сам макет страницы узкий, а вокруг много неиспользованного места. Выглядит ужасно, не правда ли? Всё, что нужно сделать — это добавить одно правило в стили административной части сайта. …

Подробнее

PHPUnit тесты кода со встроенными функциями PHP

В процессе PHPUnit-тестирования зачастую приходится иметь дело с кодом, который зависит от встроенных функций PHP, например, phpversion(). Методика тестирования изложена в настоящей статье. Рассмотрим в качестве простого примера следующий класс, который проверяет текущую версию PHP и сообщает, удовлетворяет ли она требованиям. <?php /** * Class to check requirements of the plugin. * * @package sample-plugin …

Подробнее

WooCommerce — 1C Exchange теперь работает с WC 3.7

Плагин WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange является единственным работающим решением для обмена данными между WooCommerce и 1C:Enterprise. Долгое время он не поддерживался авторами, что создавало проблемы с последними версиями WooCommerce. Мы доработали плагин, исправили некоторые ошибки и проверили его функционирование под WC 3.7. Форк плагина доступен в нашем репозитории. Основная проблема заключалась в том, что …

Подробнее

Преимущества Cyr-To-Lat

Cyr-To-Lat — это плагин транслитерации, предназначенный для преобразования ярлыков постов из нескольких кириллических и не латинских языков в латиницу. Чем он отличается от конкурентов? Поиск по wp.org даёт ряд плагинов транслитерации (отсортированы по убывания числа установок): Cyr-To-Lat ( 100,000+ ) Cyr to Lat enhanced ( 100,000+, устарел ) Rus-To-Lat ( 100,000+, устарел ) WP Translitera …

Подробнее

Почему WordPress 5.5.3 c PHP 8 выдаёт 404 на каждой странице сайта?

WordPress в последней на настоящий момент версии 5.5.3 при попытке включить только что выпущенный PHP 8 выдаёт 404 ошибку. Почему? Официально WordPress будет совместим с PHP 8 только начиная с версии 5.6, которая запланирована на 8 декабря 2020. RC-версия ядра WordPress 5.6 работает правильно с PHP 8, проблема устранена. Однако интересно разобраться, что является источником …

Подробнее

Profiling WordPress Sites: материалы митапа

2 марта прошёл митап латвийской WordPress группы, темой которого стало профилирование сайтов на WordPress (Profiling WordPress Sites). В ходе доклада были освещены вопросы профилирования тяжёлых WordPress сайтов. Наш докладчик (@kagg-design) провёл анализ применимости плагина Query Monitor и профилировщиков, включая Blackfire. Приведены реальные примеры оптимизации сайтов, включая как оптимизацию числа запросов к базе, так и оптимизацию …

Подробнее

Gutenberg by a developer’s eyes: материалы митапа

Приход весны в латвийской WordPress группе отметили женским митапом. Katya Leurdo сделала доклад на тему «Gutenberg by a developer’s eyes — создание кастомных блоков». Это был второй митап технической серии, начатой в марта 2021 года. В ходе доклада показано создание трёх кастомных блоков Gutenberg, с примерами кода на GitHub. Материалы митапа доступны для скачивания по …

Подробнее