it-swarm.dev

Různé widgety na různých stránkách šablony?

Pokud mám několik různých šablon stránek, jak bych zobrazoval jinou kolekci widgetů sidebar pro každou z těchto šablon? Jako výchozí bod používám téma Starkers.

4
cannyboy

Budete muset vytvořit více sidebars v souboru functions.php a poté upravit šablony stránek tak, aby zavolaly na postranní panel, který chcete.

Přidání postranních panelů

Přejděte do souboru functions.php. Měli byste vidět již zaregistrované postranní panely. Kód bude vypadat takto:

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

Chcete-li přidat další postranní panel, přidejte následující kód libovolný početrát po existující registraci postranního panelu.

//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>'));    
} 

Tam, kde se říká 'Name Sidebar Here', vložte logický název tohoto nového postranního panelu. Zbytek pole umožňuje umístit HTML před widget (before_widget), pokud vaše téma vyžaduje, aby jeho design a HTML po widgetu (after_widget). Také, více obyčejně použitý v tématech je vlastní styl pro tituly widgetu. Tento HTML můžete umístit před titul (before_title) a za titul (after_title). Ve výše uvedeném příkladu bude mít každý název widgetu <h2 class="widgettitle"> umístěno před ním a poté zavřít úvodní značku.

Přidejte nový postranní panel do šablon stránek

Nyní, když jste přidali postranní panel, budete ho muset umístit do šablony stránky, kde chcete. Vyhledejte, kde se výchozí šablona postranního panelu nazývá uvnitř vaší šablony (obvykle) a nahraďte ji následujícím, kde číslo je pořadí, ve kterém byl sidebar přidán do souboru functions.php.

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

Tento postranní panel byl druhý, který byl přidán do souboru functions.php, takže jej chcete zavolat do šablony stránky, umístíte 2 uvnitř !dynamic_sidebar(Put sidebar number here) ).

Přidat miniaplikace

Jakmile jej přidáte do šablony stránky, přidejte widgety na postranní panel ve stránce Správa vzhledu -> Widgety. Nový postranní panel se tam objeví s názvem, který jste zadali v souboru functions.php.

Snad to pomůže!

8
Joshua Lynch

A Widget Logic je také volba.

3
ZaMoose
  1. Widget Logika je jedno řešení - taky dobrý.

  2. Více sidebars je robustnější řešení, protože můžete kompletně přizpůsobit všechny před/po _widget značek v functions.php. Nemluvě o tom, že můžete vytvořit libovolný počet těchto postranních panelů.

  3. Odlehčeným řešením by mohlo být jednoduše použít třídu těla k rozlišení mezi typy stránek na css. Skrýt věci, které nechcete, zobrazit věci, které děláte. Je to rychlý a jednoduchý způsob, jak se něco takového stát.

1
eddiemoya

Dalším řešením je Display-Widgets plugin, přidává rozbalovací nabídku v každém widgetu, který máte aktivován ve svém bočním panelu/s, kde si můžete vybrat, ve kterých stránkách/příspěvcích se má zobrazit nebo skrýt.

1
Philip

další dvě možnosti: 1. místo toho, aby se 'sidebar.php' stalo složitějším, přidejte nové widgetizované postranní lišty do nového souboru sidebar 'sidebar-xxx.php' a pak do použití šablony stránky

  1. můžete použít kontextové widgety plugin
0
hannit cohen