Posted inДайджест

Состоянии гонки(Race condition) на примере счетчика

Состояние гонки или опасность гонки — это состояние электроники, программного обеспечения или другой системы, в котором основное поведение системы зависит от последовательности или времени других неконтролируемых событий. Это становится ошибкой, когда одно или несколько возможных вариантов поведения нежелательны.

Posted inКак сделать, Сниппеты, ЧаВО

async & defer в WordPress — ускоряем загрузку JavaScript

async & defer — это очень полезные механики, которые позволяют существенно ускорить загрузку страниц и их отрисовку для посетителей. Однако они относительно новые в мире JavaScript. И потому в мире WordPress еще существует много скриптов которые не используют их. Но это легко решается через wp_script_add_data.

Posted inСниппеты

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

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

Posted inВыбор редакции, Другое

WordPress — это просто?

Часто в разговорах можно услышать фразу «знающих программистов» о том что WordPress это просто, оно для школьников, чайников, домохозяек (нужное подчеркнуть). А вот «крутым программистам» на таком работать позор. В этих словах есть доля правды, как и целый пласт заблуждений 🙂 Давайте начнем с правды. WordPress отличается от других платформ тем что имеет двойственную природу. […]

Posted inКак сделать, Сниппеты

Как добавить CSS классы ко всем пунктам меню?

Меню в WordPress делается через функцию wp_nav_menu(). Иногда нужно не трогая чужой код, изменить набор классов используя свою механику. Для этого можно использовать хук nav_menu_css_class, мы можем добавить свои CSS классы, если соблюдается нужное нам условие. Добавим CSS класс, если это пост и название элемента меню равно «blog»:

Posted inДругое

Удобный сайт государственного органа на WordPress (Правительство Пенсильвании)

Случайно зашел на сайт Правительства Пенсильвании http://www.pa.gov/ Удивился тому как удобно он сделан. Как все продумано. Дизайн для людей. На первом месте каталог услуг. Что логично. Жаль что у нас в стране сайты Правительственных органов сделаны не для людей. На первом месте новости и PR чиновников. Важно не быть, а казаться. Важны не услуги для людей — […]

Posted inПлагины

Изменение домена и сохранение трафика с помощью плагина Simple 301 Redirects

На днях была задача изменить домен у сайта. Но трафик терять не хочется. Нужно было сделать так чтобы все страницы старого домена попадали на страницы нового домена. Нашелся плагин Simple 301 Redirects https://wordpress.org/plugins/simple-301-redirects/ Скачал, активировал, настроил и все заработало. Настройки оказались очень простыми:

Posted inСниппеты

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

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

Posted inСниппеты

Получаем и обрабатываем данные в формате JSON

Часто при интеграции сайтов на WordPress, нужно получать данные из других систем посредством RESTfull интерфейса в формате JSON. Простейший пример — получить курс валют от https://openexchangerates.org/ При регистрации дается URL, который возвращает данные о текущем курсе валют. Соответственно если нам нужно обработать эти данные к примеру для конвертации валют в магазине, то нам нужно как […]

Posted inСниппеты

Добавить скрипт/стиль в плагин/тему WordPress

Просто добавление скриптов или стилей в шапку или подвал сайта — это плохо. Могут быть конфликты с другими компонентами где есть аналогичные скрипты. Важно добавлять их через очередь, которая контролирует добавление скриптов на страниц и исключает конфликты. https://gist.github.com/uptimizt/7b128f6678a32ade9063

Posted inСниппеты

Как вывести рекламу после определенного абзаца в посте или на странице

Размещение рекламы в самом эффективном месте поста или страницы является нетривиальной задачей. Как показывает практика, самая эффективная реклама, которую замечают, по которой кликают — реклама, размещенная внутри контента. Расположить ее внутри поста можно, воспользовавшись шорткодом, однако этот ручной метод требует постоянного контроля — нужно, как минимум, вставить шорткод в содержимое поста или страницы. Для того, […]

Posted inПлагины

Пуленепробиваемая защита WordPress от брутфорса, удобно и с маскировкой

Пару недель назад наши сайты начали массово атаковать брутфорсом. Это начало вызывать перегрузку серверов и хостинг дал предупреждение о том что отключит сайты, если не сбавим нагрузку. И тут же прислал уведомление что обнаружил брутфорс-атаку и заблокировал страницу авторизации WordPress. Все бы хорошо, но такая защита усложняла входы на сайт. И ладно если только нам, […]

Posted inПлагины

O2 — плагин для создания системы общения по задачам на WordPress

O2 — это плагин, который реализует аналогичный функционал как у темы P2. Позволяет создавать посты с сайта и обсуждать их без перезагрузки страницы. По сути создавая площадку для создания и обсуждения задач. Типа таск-трекера или кейс-менеджмента. На этих выходных на мероприятии WordCamp Denver Кевин Конбой анонсировал выход долгожданного проекта от Automattic под названием O2, который стал […]

Posted inБез рубрики

Не стоит использовать @import с CSS в WordPress

Кодекс WordPress не рекомендует использовать метод @import для CSS. По двум причинам: 1. Не будут работать плагины минификации типа WP Minify. Которые позволяют ускорять загрузку сайта. 2. Некоторые плагины кроссбраузерности не работают с этим методом. Например Respond.js в Bootstrap

Posted inДругое

Как настроить отдельный домен второго уровня для сайта в сети WordPress (multisite) на хостинге reg.ru

Появилась задача прикрутить специальный домен к сайту, который размещен в сети сайтов WordPress Multisite. Исходная ситуация 1. Домен куплен и зарегистрирован на reg.ru 2. Хостинг на hosting.reg.ru 3. Панель ISP Manager. 4. Настроен сайт в режиме сети WordPress Multisite с возможность создания множества сайтов на поддоменах Задача Нужно отдельным сайтам присвоить свой домен. Решение Проверка опции […]

Posted inПлагины

Bootstrap Shortcodes — шорткоды бутстрап для WordPress

Собирал тут посадочную страницу на WordPress с Bootstrap. В основном хватает плагина Shortocdes Ultimate, но к пример нужно вставить икноку Bootstrap, а там его нет. Пробовал использовать аддон для SU. Но он ломает часть стандартных шорткодов, что нам не подходит. Перепробовал ряд готовых плагинов, часть написаны с нарушением кодекса, часть с назойливой рекламой. В итоге […]

Posted inПлагины

Disk Usage Sunburst — плагин WordPress, показывающий место, занимаемое файлами и папками на диске

Плагин рисует круговую диаграмму с разноцветными сегментами, каждый сегмент является папкой. При подведении курсора к сегменту отображается его название и размер. Хотите получить визуальное представление о том, как распределены файлы по папкам системы? Вам поможет в этом плагин Disk Usage Sunburst. Этот плагин создает круговую диаграмму с разноцветными сегментами, каждый из которых обозначает отдельную папку. […]

Posted inБез рубрики

Сайт часто не доступен или 502 ошибка

Встретились с такой проблемой, что сайт постоянно вылетает, становится не доступным, тормозит. Получили ответ хостера ТаймВеб: Ошибка была вызвана тем, что обработчики веб-сервера Apache, запущенные для Вашего аккаунта, были заняты длительным выполнением скриптов (по Вашему текущему тарифу доступно использование 6 обработчиков). В результате этого новые обращения ожидали освобождения обработчика, и по истечению таймаута ожидания на […]

Posted inСниппеты

Скрытый журнал ошибок в WordPress (WP_DEBUG)

Бывает нужно включить логи WordPress, чтобы понять что происходит с сайтом. Определить проблемы и причины ошибок. Для этого есть переменная WP_DEBUG в файле wp-config.php. Беда в том что если просто ее включить, то ошибки полезут на экран и это создаст проблему в работе сайта. Зачастую нужно включить журна ошибок, но при этом оставить сайт в рабочем […]

Posted inДругое

Понимание и работа с данными в WordPress

Данная статья является переводом первой статьи Rachel McCollin из цикла о данных в WordPress. В ней по полочкам разложена структура данных, типы контента и их взаимосвязь в WordPress. Будет полезна в первую очередь новичкам, но и профессионалы могут найти для себя что-либо новое.   Замечание от переводчика В переводе используется терминология согласно кодексу WordPress Post […]

Posted inСниппеты

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

В WordPress есть отличный механизм для хранения опций темы или сайта, который поддерживает разные типы полей и прост в настройке. Очень полезен, когда нужно сделать возможность хранения телефона, логотипа или адреса расположения офиса. Чтобы это все можно было менять. Для этого можно конечно городить разные фреймворки опций, покупать расширения для ACF. Но есть и более естественный механизм http://codex.wordpress.org/Theme_Customization_API […]

Posted inСниппеты

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

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

Posted inСниппеты

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

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

Posted inКак сделать

Как написать плагин для WordPress

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