Как добавить post_id в url для кастомных записей в WordPress

При создании нового типа постов функцией register_post_type() за формирование url в основном отвечает аргумент rewrite. Например, при регистрации типа записи project, по умолчанию в этом параметре отображается название типа записи: В параметре rewrite можно указывать плейсхолдеры типа %category%. Но их нужно создать с помощью add_rewrite_tag() и научить WP их понимать. Чтобы вместо project-example, в url…

Как правильно подключить обработчик форм в WordPress

Если вам необходимо интегрировать обработчик форм php в WordPress, вы можете воспользоваться следующим решением. Создайте шаблон страницы в папке вашей темы и поместите в него свою разметку формы: Как видите, мы не указываем action в форме, но добавляем в форму скрытое поле с произвольным именем и значением. Мы будем искать наличие этого поля, чтобы подключить…

Как сделать различные шаблоны для категорий и подкатегорий в WordPress

В базовой иерархии шаблонов, вы можете использовать следующие шаблоны для категорий: category-{slug}.php category-{id}.php category.php Но, если вам нужно применять разные php-шаблоны для категорий и подкатегорий, вы можете использовать хук category_template и проверять, есть ли у текущей категории родительский элемент, и в этом случае загружать, например, subcategory.php: Если же у вас задача сделать разные шаблоны для…

WordPress получил встроенную функцию карты сайта XML, для индексации в поисковых системах

WordPress — это популярная система управления контентом, на которой работает треть сегодняшних интернет-сайтов теперь получает встроенную поддержку XML-карт сайта. Эта функция появилась в версии WordPress 5.5 выпущеного в релиз 11 августа 2020. XML карты сайта — это специальные файлы, содержащие список всех страниц сайта, сообщений в блогах, тегов и другого контента. Поисковые системы, такие как…

Как исключить из результатов поиска страницы, категории или автора на WordPress

По умолчанию функционал поиска в WordPress показывает в результатах все типы записей и страниц. Вы можете захотеть убрать из поиска страницы, категорию, таксономию или записи конкретного автора. Чтобы это осуществить нам нужно поправить основной запрос is_search() на хуке pre_get_posts. Рассмотрим примеры. Как скрыть из поиска страницы Вы можете использовать следующий код, чтобы оставить в результатах…

Как правильно собрать классы для header в WordPress

В WordPress есть несколько функции вида body_class() и post_class() которые собирают классы для тегов <body> и <article> соответственно. Их удобство заключается еще и в том, что для них есть свои фильтры, через которые можно добавить свои пользовательские классы из любого места вашего проекта. Функция, которую мы сегодня рассмотрим по своей сути очень на них похожа….

Как закрыть от индексации категории в которых нет постов на WordPress

Обычно, чтобы закрыть какие-то страницы от индексации мы делаем это используя robots.txt, но этот файл ничего не знает о контенте сайта и не может определить есть ли какие-то посты в категориях. Для этого нам понадобится достаточно простой и нетривиальный код: Как видите, мы просто делаем проверку, что находимся на архивной странице и в текущем глобальном…

Как узнать за сколько времени php генерирует страницу на WordPress

Практически все разработчики регулярно сталкиваются с задачами по оптимизации скорости загрузки сайта; это один из самых важных показателей, который напрямую влияет на отношение пользователей и поисковиков к вашему сайту. Чтобы узнать почему сайт загружается медленно, нужно уметь смотреть на все этапы этого процесса в отдельности и в этом материале мы узнаем как понять за сколько…

Как узнать, сколько памяти и времени тратится на php-функцию в WordPress

При написании ресурсозатратных функций и скриптов в php может быть очень полезна информация о том, сколько времени и памяти использует ваша программа. Это знание может быть особенно критично на шаред-хостингах, где CP, выделенное на обработку задач ограничено. CP — величина, характеризующая время, затраченное центральным процессором на выполнение процессов пользователя (например, обработку http-запросов web-сервером, выполнение php-скриптов, выполнение…

Как конвертировать байты в Kb, Mb, Gb на php

При написании кода вы можете столкнуться с ситуацией, когда какая-либо функция, например memory_get_usage() возвращает результат своей работы в байтах. Это число может оказаться слишком большим для того, чтобы его быстро понять, поэтому вам пригодится функция, которая конвертирует это число в более понятный человеку формат килобайт, мегабайт, гигабайт или терабайт. Функция принимает два параметра — количество…

Как добавить пагинацию для страниц или cpt с использованием WP_Query()

Вордпресс устроен таким образом, что для любого запроса постов из базы с помощью WP_Query() вы можете сделать пагинацию, поскольку для этого в запросе уже есть необходимые аргументы ‘paged’ и ‘posts_per_page’. Под пагинацией мы понимаем страничную навигацию. Например, если мы указываем вывод 10 постов на странице, а в ответе WP_Query() нам возвращается информация о 32 записях,…

Руководство по иерархии шаблонов в WordPress

Все современные темы WordPress состоят из шаблонов, таблиц стилей, javascript и изображений. Вместе эти файлы определяют, как ваш сайт будет выглядеть для пользователей. Шаблоны с определенными именами влияют на определенные области вашего веб-сайта. Как правило, тема WordPress должна содержать шаблоны для отображения категорий, дат, архивов, отдельных записей, пользовательских страниц и т. д. Как пользователь, вы…