Иногда необходимо, чтобы некоторые виджеты отображались только на определённых страница (или на страницах определённого типа).
Это можно легко сделать с помощью тега b:if
следующим образом (открываем Дизайн -> Изменить HTML (отметить 'Расширить шаблоны виджета')):
<b:widget id='HTML5' locked='false' title='Искать на блоге' type='HTML'> <!-- отображать виджет только на главной странице --> <b:if cond='data:blog.pageType == "index"'> <b:includable id='main'> <!-- only display title if it's non-empty --> <b:if cond='data:title != ""'> <strong class='title'><data:title/></strong> </b:if> <div class='widget-content'> <data:content/> </div> <b:include name='quickedit'/> </b:includable> </b:if> <!-- закрываем тег --> </b:widget>
Однако такой трюк не проходит с такими виджетами как Постоянные читатели (Followers)
и Архив блога (Blog Archive)
. При сохранении шаблона изменения, сделанные внутри этих виджетов, исчезают по непонятным причинам!
Опишу решение для новых шаблонов blogger. За основу взята эта статья. Задача - показывать виджет Постоянные читатели
только на главной странице.
Открываем Дизайн -> Изменить HTML (НЕ отмечать 'Расширить шаблоны виджета') и находим следующий код (в случае, если виджет расположен в правой колонке ищем div с классом column-right-inner
):
<div class='column-left-inner'> <aside> <macro:include id='main-column-left-sections' name='sections'> <macro:param default='0' name='num' value='1'/> <macro:param default='sidebar-left' name='idPrefix'/> <macro:param default='sidebar' name='class'/> <macro:param default='true' name='includeBottom'/> </macro:include> <!-- сюда добавим кое-что --> </aside> </div>
И добавляем следующий код:
<b:if cond='data:blog.pageType == "index"'> <macro:include id='main-column-left-sections2' name='sections'> <macro:param default='0' name='num' value='1'/> <macro:param default='sidebar-left2' name='idPrefix'/> <macro:param default='sidebar' name='class'/> <macro:param default='true' name='includeBottom'/> </macro:include> </b:if>
Сохраняем шаблон и прокручиваем до конца исходного кода. После секции <b:section-contents id='sidebar-left-1'></b:section-contents>
должна появиться секция <b:section-contents id='sidebar-left2-1' />
. Перемещаем <b:widget id='Followers1' locked='false' title='Участники' type='Followers'/>
из первой секции во вторую. Должно получиться примерно следующее:
<b:section-contents id='sidebar-left2-1'> <b:widget id='Followers1' locked='false' title='Участники' type='Followers'/> </b:section-contents>
Минусом данного решения является то, что скрываемый виджет должен находиться либо в начале списка виджетов, либо в конце. Но если очень хочется, то можно создать ещё одну секцию <macro:include id='main-column-left-sections3' name='sections'>
и переместить в неё виджеты которые должны идти после скрываемого виджета.
почему бы и нет :)
ОтветитьУдалить