воскресенье, 12 декабря 2010 г.

Как отображать виджеты только на главной странице или на заданных определённых.

По умолчанию,если добавить виджет,то он виден на всех страницах блога. Но с помощью не хитрого действия,можно заставить виджет отображаться только на главной странице,или только на определённой,например в архиве,или на какой-то конкретной странице.

Короче,виджеты добавлены,лезем в шаблон,ставим галочку на "расширить шаблоны виджета" и ищем название виджета или уникальное имя.Что-то типа того :
<b:widget id='HTML1' locked='false' title='WIDGET TITLE or UNIQUE WORD' type='HTML'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
...
...
...
WIDGET CODE
...
...
...
<div>
<b:include name='quickedit'/>
</b:includable>
</b:widget>



Теперь,чтобы виджет был виден только на главной,после <b:includable id='main'> добавляем <b:if cond='data:blog.url == data:blog.homepageUrl'>
А после <b:include name='quickedit'/> вот это </b:if>
Чтобы в постах,также добавляем аналогично это: <b:if cond='data:blog.pageType == "item"'> и </b:if>
Чтобы в архиве : <b:if cond='data:blog.pageType == "archive"'> и </b:if>
Чтобы на определённой странице,это: <b:if cond='data:blog.url == "сюда адрес страницы"'> и </b:if> (например http://yourblog.blogspot.com/2010/o5/show-widget-on-specific-pages.html )
Чтобы везде,кроме определённой страницы :
<b:if cond='data:blog.url != "Particular Page URL"'> и </b:if>
Чтобы только в статичных страницах:
<b:if cond='data:blog.pageType == "static_page"'> и </b:if>
Чтобы на странице ярлыка:
<b:if cond='data:blog.url == " http://your_blog.blogspot.com/search/label/Label_Name"'> и </b:if>

3 комментария:

  1. фишка прикольная, я как то давно ещё на форуме google видел этот вопрос, но тогда написал что это невозможно сделать, кто бы мог подумать что этот xml язык способен на такие чудеса.

    ОтветитьУдалить
  2. Тут вообще много чего можно сделать.Знать бы как :)

    ОтветитьУдалить
  3. Спасибочки за подробное описание Все получилось!!!!

    ОтветитьУдалить