Расширение возможностей Elementor при помощи шорткодов

Не смотря на довольно широкие возможности конструктора страниц Elementor все же иногда мы сталкиваемся с недостатком какого либо функционала. Так например недавно у меня была задача. Клиент хотел вывести количество товаров в категории на странице категории. Сам сайт был создан при помощи Elementor и Woocommerce. Шаблоны страниц категорий использовались кастомные и они были сделаны соответственно в елементоре. Изначально специального виджета для вывода количества товаров в категории в наборе виджетов елементора да и в других наборах дополнений к нему  нет. Не очень удобно, но в принципе не беда. Функционал елементора можно довольно легко расширить с помощью шорткодов. Многие из вас кто давно работает с вордпрессом знают широких возможностях шорткодов. Вся прелесть заключается в том, что вы можете самостоятельно писать свои шорткоды с нужными вам функциями.

В моем случае шорткод для вывода количества товаров на странице категории выглядел так:

function count_products() {

$category = get_queried_object();
$count = (int)$category->count;

return $count;
}

add_shortcode(‘count’, ‘count_products’);

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

Данный код создает функцию которая собственно получает и выводит значение количества продуктов на странице категории. А нижняя часть кода добавляет шорткод [count] который в последствии можно добавлять на страницу в нужном месте с помощью виджета  для вставки шортокодов в елементоре. Если нужна дополнительная стилизация например текстовой информации которую выводит шорткод вы всегда можете поставить в расширенных настройках виджета свой css класс и затем в файле стилей прописать нужную вам стилизацию.

Таким образом вы можете создавать практически любые шорткоды под ваши цели и затем использовать их в елементор. Что в свою очередь делает ваши возможности практически безграничными.