В предыдущей статье мы добились реализации вкладок с помощью добавления ul списка заголовков и последующего размещения основного контента в div блоках. Данный подход хорош тем, что информация будет доступна даже в браузерах с отключенным Javascript. Однако в некоторых случаях гораздо проще бывает заранее сгенерировать DOM объекты, необходимые для вкладок, что основывается на применении jQuery.
Поскольку список h3 заголовков и параграфов p размещен либо на отдельной странице, либо в отдельной записи WordPress, мы по-прежнему можем обернуть необходимый контент в UI Tab виджет. На следующем скриншоте представлена страница About, которая уже включает в себя весь необходимый контент. Нам понадобится всего лишь несколько «обработать» данную страницу, чтобы она удовлетворяла всем требованиям jQuery UI Tab.
Для начала нам понадобится обратиться к определенной странице. WordPress обеспечивает одну полезную возможность: он присваивает уникальные ID всем страницам. Вам понадобится изучить исходник страницы с целью определения, поддерживает ли тема данную функцию (в большинстве случаев поддерживает). Указанная функция позволяет обратиться непосредственно к тому контенту, который нам необходимо поместить во вкладки. К примеру, если вся информация, которую мы хотим усовершенствовать, расположена на странице About, мы можем просмотреть ее исходник и увидеть, что уникальный ID записи носит название #post-104. Этот идентификатор позволит нам применить вкладки именно к интересующей записи.
Как только мы создадим ul список, нам понадобится обернуть его в новый блок div с классом #aboutUs. Затем мы циклически пройдем через каждый h3 элемент для создания отдельных пунктов li списка со ссылками, и обернем каждый последующий h3 и p тег в собственный div с определенным анкором.
... //добавим пустой список ul к странице About перед первым h3 jQuery("#post-104 h3:first").before("<ul></ul>"); //выбираем ul, h3 и h3 p теги //и заключаем их в новый div //используя функцию .add() jQuery("#post-104 ul").add("#post-104 h3") .add("#post-104 h3+p").wrapAll("<div id='aboutUs'></div>"); //для каждого пункта h3: jQuery("#post-104 h3").each(function(i){ //добавляем текст к списку ul ссылок var titleTxt = jQuery(this).text(); var htmlTxt = "<li> <a href='#name-"+i+"'>"+titleTxt+"</a></li>"; jQuery("#post-104 ul").append(htmlTxt); //обертываем каждый h3 и p в div с названием анкора //используя .andSelf jQuery(this).next("p").andSelf() .wrapAll("<div id='name-"+i+"'></div>"); }); //удаляем класс .entry jQuery("#post-104 .entry").removeClass('entry'); //Наконец, создаем tabs widget jQuery("#post-104 #aboutUs").tabs(); ...
Теперь обновим нашу страницу:
Опять же, вы должны сами выбрать наиболее подходящий для вас маршрут движения по внедрению усовершенствований в WordPress. Все зависит исключительно от ваших требований.