it-swarm-pt.tech

Widgets diferentes em diferentes modelos de página?

Se eu tiver alguns modelos de página diferentes, como mostrarei uma coleção diferente de widgets da barra lateral para cada um desses modelos? Eu estou usando o tema Starkers como ponto de partida.

4
cannyboy

Você precisará criar mais barras laterais no arquivo functions.php e editar os modelos de página para chamar a barra lateral desejada.

Adicionando barras laterais

Vá para o seu arquivo functions.php. Você deve ver algumas barras laterais já sendo registradas. O código será algo parecido com isto:

//Adds default sidebar
 if ( function_exists('register_sidebar') )
 register_sidebar();

Para adicionar outra barra lateral, adicione o seguinte código qualquer número de vezes após o registro existente na barra lateral.

//Registers new sidebar
if ( function_exists('register_sidebar') ) {
    register_sidebar(array('name' => 'Name Sidebar Here','before_widget' => '','after_widget' => '','before_title' => '<h2 class="widgettitle">','after_title' => '</h2>'));    
} 

Onde está escrito "Nome da Barra Lateral Aqui", coloque um nome lógico para essa nova barra lateral. O resto do array permite colocar o HTML antes do widget (before_widget) se o seu tema requerer para o seu design e colocar o HTML após o widget (after_widget). Além disso, mais comumente usado em temas é um estilo personalizado para títulos de widgets. Você pode colocar esse HTML antes do título (before_title) e depois do título (after_title). No exemplo acima, cada título de widget terá <h2 class="widgettitle"> colocado antes e depois para fechar a tag de abertura.

Adicione sua nova barra lateral aos seus modelos de página

Agora que você adicionou uma barra lateral, você precisará colocá-la no modelo de página onde quiser. Encontre onde a barra lateral padrão está sendo chamada dentro do seu modelo (geralmente) e substitua-a pelo seguinte, onde o número é a ordem de onde a barra lateral foi adicionada no arquivo functions.php.

<?phpif ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(Sidebar number here) ) : ?><?php endif; ?>

Esta barra lateral foi a segunda adicionada no arquivo functions.php, então, para chamá-la no modelo de página, você colocará 2 dentro de !dynamic_sidebar(Put sidebar number here) ).

Adicionar widgets

Depois de adicioná-lo ao modelo de página, basta adicionar widgets à barra lateral em sua página de administração Aparência -> Widgets. A nova barra lateral aparecerá lá com o nome que você deu no arquivo functions.php.

Espero que isto ajude!

8
Joshua Lynch

E Widget Logic também é uma opção.

3
ZaMoose
  1. Widget Logic é uma solução - uma boa também.

  2. Várias barras laterais são a solução mais robusta, já que você pode personalizar completamente toda a marcação antes/depois do _widget em functions.php. Sem mencionar que você pode fazer qualquer número dessas barras laterais.

  3. Uma solução mais leve pode ser simplesmente usar a classe body para distinguir entre os tipos de páginas no css. Esconda as coisas que você não quer, mostre as coisas que você faz. É uma maneira rápida e simples de fazer esse tipo de coisa acontecer.

1
eddiemoya

Uma outra solução é Widgets de exibição plugin, ele adiciona um menu suspenso em todos os widgets que você ativa na sua barra lateral/s, onde você pode selecionar em quais páginas/postagens mostrar ou ocultar.

1
Philip

duas outras opções: 1. ao invés de tornar o 'sidebar.php' mais complicado, adicione as novas sidebars widgetizadas a um novo arquivo sidebar 'sidebar-xxx.php' e, em seguida, use o template da página.

  1. você pode usar widgets contextuais plugin
0
hannit cohen