Поступают вопросы по поводу моей прошлой публикации, в которой мы регистрировали в своём шаблоне свой собственный многофункциональный виджет (ссылка ниже). Да, прежняя статья может быть несколько сложновата, а посему я решил записать этот коротенький поясняющий пост.
Нынче мы зарегистрируем в админке – на панели виджетов – свой собственный: а точнее узнаем как зарегистрировать свою панель виджетов.
Плюсы: у нас появится в разделе “Виджеты” своя собственная панель. Однако фишка не в этом. А в том, что в эту панель возможно поместить любой имеющийся в арсенале сайта виджет и вывести его абсолютно в любом месте! Абсолютно любую функцию в этом виджете. А енсли использовать текстовый вариант виджета, то это обусловить безграничные возможности.
Начнём концерт:
для чего нужен личный виджет шаблона, или своя панель виджетов в админке
Использование виджетов WordPress — добавить и настроить абсолютно в любом месте сайта
Добавим информационные блоки (по типу спойлер) в любое место сайта — без плагинов: легко и просто.
В принципе много для чего! – множество задач возможно решить с помощью именного виджета.
Хотя, в общем-то, можно обойтись стандартными решениями шаблонов – однако, те у нас у всех все разные! и новичок порою не знает, например, как вывести виджет в каком-то необходимом, нужном месте сайта.
И чтобы как-то облегчить сию задачу – призвана тема этого поста.
Итак: с помощью кастомного виджета можно, к примеру, в финале статьи вывести абсолютно любые сообщения: похожие по теме записи рубрики… автора поста, ту же рекламу и прочее и прочее… Также просто возможно обогатить виджетом совершенно любую произвольную страницу сайта, например, любую из страниц “Обратной связи”, “404-й ошибки”, “Формы подписки” и что прелестно – лендинг, который создаётся всего-то в ядре стороннего дополнительного файла(в) шаблона (как это делается легко и просто, опишу в одной из следующих статей).
В общем на что только хватит личной смекалки, то и обыграете посредством нашего кастомного виджета…
к тому же – непременно воспользуйтесь условиями вывода функций для более тонкой организации вывода/запрета показа нашего созданного виджета на избранных страницах сайта (в статье по ссылке много полезных переходов)..!
Предположим, не могу сдержаться… чтоб не прорекламировать себя…
…все мы знаем, что в текстовых виджетах вордпресс невозможно пользоваться функциями или шорткодами: отработка php
и шорткодов (коротких кодов) в виджетах запрещена! Это очень печально, ибо ограничивает возможности администратора! Ведь именно текстовый виджет – если в него поместить какую-то полезную функцию php
– позволит несказанно дополнить дизайн и функционал сайта.
И вот чтоб разом решить проблему отработки php
функций и шорткодов в виджетах, я когда-то написал плагин widget text class ats …установив который, ваша тема обретёт новый текстовый виджет, а с ним новые возможности.
Как только плагин будет установлен и активирован – тут же автоматически на панель виджетов добавится новый, а с ним подключатся полезные отработки возможностей php
.
Никаких конфликтов!
О плагине widget text class ats можно прочесть на официальной страничке.
Кто-то воскликнет, мол, это запросто выполнить напрямую в коде! Да, но не всем под силу постоянные копания в скриптах… и нет желания постигать глубины кодировок. А начальные знания так или иначе присутствуют у каждого из нас.
Должен сказать, – я не склонен истолковывать использование виджетов на сайте как великие тормоза к скоростям загрузки страниц. Охотников хватает и без меня.
Уверенно предположу лишь одно, что, если код шаблона выполнен без ошибок и в соответствии c нынешним стандартам php 8.0 то и сайт будет грузиться легко и быстро, не смотря ни на какие лишние добавления функций, или плагинов.
Сайт тормозит ошибочный и громоздкий код!
Ладно! приступим:
как зарегистрировать свою панель виджетов
Кстати статьи будет не лишним высказаться о работе хостингов – их мощности – ведь именно сила хоста также может выступать виною тормоза загрузки страниц! – и, чтобы нещадно не кастрировать свой сайт, преследуя призрачные скоростя загрузки… – необходимо стараться избирать приличные хостинги, и не морочится всякими зависаниями: вот, например, взгляните на эту хост-пощадку: https://adminvps.ru/wordpress_hosting.php…
\…а вот в этой статье я делал обзор нескольких иных приличных хостингов.
Используем register_sidebar() которая обусловит регистрацию панели (некий контейнер) для виждетов;
Обыграет уникальный формат для каждого виджета;
Тег заголовка html.
Таким образом, зарегистрировав свою собственную панель, в админке появится личное место, в которое станем помещать любые виджеты.
А уж затем, запросто сможем вывести (условно – панель) с виджетами в любом месте шаблона! в этом нам поможет функция dynamic_sidebar().
В общем, и короче: функцию регистрации… нужно подключать к событию WP widgets_init.
Для того, чтоб успешно зарегистрировать новую панель для виджетов, нужно поместить следующий код в активный файл functions.php
своего шаблона – например, в или куда там вы помещаете… по этому поводу размещения кода функций можно почитать ЭТУ статью.
add_action( 'widgets_init', 'register_moy_widgets' );
function register_moy_widgets(){
register_sidebar( array(
'name' => "...боковая панель сайта",
'id' => 'moy-sidebar-left',
'description' => 'Виджеты будут показаны в колонке сайта, либо в требуемом месте во фронтэнде...',
'before_title' => '<h2>', // возможно изменить на div class="widgettitle" - либо какой-нить id колассы
'after_title' => '</h2>'
) );
}
Пояснения: параметры $args
name
– имя панели виджетов.
id
– уникальный – идентификатор виджета
description
– описание работы виджета.
before_title и after_title
– класс (hTML – заголовок виджета: до/после), котором будет завёрнуто имя виджета – фронтэнд. Одним словом, обыгрывайте всё со стилистикой своей темы. Вольно!
…что важно, идентификатор переданный в параметре ID – зададим его по своему усмотрению… Сколько угодно…
как вывести виджет в любом месте сайта?
Так как у нас пост о том, как вывести виджет в любом месте страницы сайта, рассмотрим соответствующий пример…
можно оставить как есть: т.е выводить в дополнительную колонку виджетов… это если у вас один сайдбар, то можно сделать два… или там футерный…
Открывайте требуемый файл, и – помещайте туда, куда требуется такой код вызова функции панели виджетов.
<?php
if ( function_exists('dynamic_sidebar') )
dynamic_sidebar('moy-sidebar-left');
?>
Конечно же, всё это нужно обставить стилями своей темы.
Если моё изложение показалось скупым: милости прошу – задавайте вопросы в комментариях… помогу…
На этом занавес представления опускается…
…на рампы пыль печальная ложится…
!..подписываясь на обновления mihalica.ru —
...расстаёмся с невежеством..!
Online консультация по настройкам и созданию сайтов на WordPress
mihalica.ru !
А вот вопрос: Как сделать панель виджетов на самом краю сайта? Например: вот у меня шаблон в три колонки, правая левая и контент посередине. Шаблон не вовсю ширину экрана, а узкий. По краям фон. А как сделать дополнительную колонку виджетов с самого края экрана или это не возможно?. Надеюсь меня поняли!?
Здравствуйте Михаил!
В принципе понял вас. Вопрос ваш решаем… только насколько просто или чуть сложнее зависит от решения вашего шаблона.
С CSS придётся немного поработать (решить вопрос мобильного отображения сайта и т.п.) – в общем, если решать посредством CSS, то потрудиться придётся: блоки виджетов выводить за div-class контента… и т.д. тогда колонка виджетов выведется у края экрана монитора.
Или вы хотите банально добавить 4-ю колонку (сбоку)?