bara laterală wordpress. Bare laterale WordPress, crearea barelor laterale WordPress. Widgeturi WordPress implicite

Afișează primul panou widget activ (o bară laterală este un panou care conține cel puțin un widget). Puteți specifica ID-ul sau numărul panoului, care să fie afișat, dacă site-ul are mai multe panouri widget.

dynamic_sidebar() returnează adevărat sau fals, rezultatul returnat afișând și bara de widget-uri. Valoarea returnată poate fi utilizată, de exemplu, pentru a determina dacă codul care înlocuiește widget-urile trebuie procesat atunci când nu există widget-uri în panou (vezi exemplul #1).

se intoarce

adevărat dacă panoul widget a fost găsit. false dacă panoul nu există sau nu conține widget-uri.

Utilizare

$index (șir/număr) ID-ul panoului specificat în parametrul id al funcției register_sidebar() când panoul a fost înregistrat. Dacă este dat un număr, atunci va fi căutat panoul cu bara laterală ID-$index.
Implicit: 1 (bara laterală-1)

Exemple

#1 Afișează bara laterală dacă există.

Acest exemplu arată cum să afișați prima bară laterală negoală (ID-ul barei laterale nu a fost specificat în timpul înregistrării) sau, dacă nu este găsit, procesați codul specificat:

#2 Afișează bara laterală dorită.

# 3 Verificați prezența panoului și afișați-l

În exemplul 2, nu am verificat prezența unui panou și a widget-urilor în el. În acest exemplu, vom verifica prezența unui panou pentru a nu afișa inutil Etichete HTML (

",

[ creion - 5e1ff7d787fb8042608178 inline = "adevărat" ] "after_widget" => "" ,

înainte de_titlu

Majoritatea widget-urilor afișează un titlu dacă utilizatorul îl introduce. Argument înainte de_titlu acesta este elementul de deschidere al titlului widget-ului. În mod implicit, WordPress îl scrie ca < h2 > . Pentru a folosi etichete < h2 > nu merită, în acest caz etichetele vor face < h3 > Și < h4 > . Pentru intuitivitate și lizibilitate a codului, nu faceți nume de clasă fără cratime, astfel încât să vă fie mai convenabil să citiți singur numele, este foarte important dacă nu ați mai lucrat cu site-ul de ceva timp.

după_titlu

Argument după_titlu acesta este elementul de închidere specificat în argument înainte de_titlu. În mod implicit, WordPress îl scrie ca < / h2 > .

Trebuie să vă asigurați că valoarea sa se potrivește cu valoarea specificată în argument înainte de_titlu.

"after_title" => ""

"after_title" => ""

Afișarea unei bare laterale dinamice dynamic_sidebar()

Când crearea barei laterale este finalizată, puteți începe să o afișați în interiorul temei. WordPress a creat o funcție pentru aceasta numită < a title = „Funcția Codex Wordpress dynamic_sidebar()” href= „http://codex.wordpress.org/Function_Reference/dynamic_sidebar” target="_blank" > dynamic_sidebar()< / a > . Această funcție solicită întotdeauna un parametru $index, care pot fi localizate simultan atât în ​​argument id, iar în argumentare Nume(specificat în timpul creării barei laterale). Deși din punct de vedere tehnic este posibil să le folosești pe ambele, este mult mai sigur să îl folosești pe cel pe care l-ai prescris. id.

Folosind codul de mai jos într-unul dintre șabloanele dvs., puteți poziționa bara laterală primar descris chiar mai sus. Rețineți că div Cu clasăȘi id Puteți schimba la discreția dvs. și puteți înșuruba diverse css stiluri .

// apelează funcția de afișare a barei site-ului

< div id = "id-vidgeta-primary" class = "moi-saidbar" >

// apelează funcția de afișare a barei site-ului

< / div >

De obicei, acest cod se află în fișier bara laterală - primar . php, despre care veți afla într-un moment când vorbim despre șabloanele de bară laterală. in orice caz dynamic_sidebar() poate fi apelat oriunde în tema dvs.

  • Facem și

Afișare implicită a conținutului

Unii dezvoltatori de teme își afișează propriul conținut dacă utilizatorul nu a fixat niciun widget pe o anumită bară laterală. Pentru a verifica dacă există widget-uri în bara laterală, utilizați eticheta condiționată is_active_sidebar() .

Exact ca o funcție dynamic_sidebar(), folosit pentru a umple bara laterală, funcția is_active_sidebar() cere întotdeauna un parametru $index, care ar trebui să fie ID bara laterală pe care o verificați.

Cu codul de mai jos putem testa bara noastră laterală primar pentru widget-uri. Dacă există widget-uri, le vom afișa; dacă nu, vom afișa conținutul pe care l-am pregătit special.

< div id = "id-vidgeta-primary" class = "moi-saidbar" >

< / div >

Nu se afișează bara laterală fără widget-uri

Secțiunea anterioară v-a arătat cum să poziționați conținutul lipsă atunci când o anumită bară laterală nu este activă, dar aveți și opțiunea de a restrânge complet (nu afișa nimic) o bară laterală atunci când bara laterală nu este activă.

Vom folosi din nou funcția is_active_sidebar() pentru a verifica bara laterală primar pentru widget-uri.

< div id = "id-vidgeta-primary" class = "moi-saidbar" >

< / div >

Apropo, aici vă puteți gândi la câteva lucruri interesante. De exemplu, puteți crea o lățime dinamică a barei laterale pentru conținutul dvs. pe baza barelor laterale active și care nu. Mai multe despre asta în articolele următoare.

Șabloane pentru bara laterală - Bara laterală

Am atins toate aspectele creării și lucrului cu o bară laterală dinamică, dar trebuie remarcat faptul că există și alte caracteristici interesante. Deci, să aruncăm o privire la șabloanele de bară laterală.

Șablonul barei laterale este utilizat pentru a găzdui codul barei laterale dinamice (consultați „Afișarea barei laterale dinamice” de mai sus). În medie, toate temele WordPress au un șablon numit bara laterală. php. Dacă tema dvs. are o bară laterală, acest șablon este suficient.

Șabloanele din bara laterală sunt completate în interiorul temei folosind funcția get_sidebar().Codul de mai jos este ceea ce folosesc de obicei pentru a popula un fișier bara laterală. php.

[ creion - 5e1ff7d788042260898923 inline = „adevărat”]

get_sidebar() de asemenea, solicită întotdeauna un parametru $ nume, care vă va permite să completați modele mai specifice. De exemplu, codul de mai jos solicită un fișier șablon bara laterală - primar . php.

[ creion - 5e1ff7d788051693571425 inline = "adevărat" ]

Pentru a vă păstra tema în ordine și pentru a separa codul, trebuie să creați un șablon specific pentru fiecare bară laterală dinamică. Vă sugerez să creați mai întâi două bare laterale dinamice cu unic id: primarȘi secundar. Pentru o mai bună organizare, creați două fișiere: bara laterală - primar . php și sidebar-secundar. php.

Veți avea nevoie de codul de mai jos pentru a crea ambele șabloane.

[ creion - 5e1ff7d788066428860015 inline = „adevărat”]

Mai sus este codul tradițional pe care îl folosesc pentru a crea șabloane. Îl puteți modifica ușor pentru a se potrivi cel mai bine cerințelor dumneavoastră personale. Încă trebuie să vă asigurați că utilizați funcția get_sidebar() atunci când completați șablonul barei laterale.

Rețineți că șabloanele de bare laterale nu afișează întotdeauna bare laterale dinamice. Din punct de vedere tehnic, ele pot conține conținut codificat de utilizator capabil să reflecte orice. De asemenea, amintiți-vă că puteți plasa o bară laterală dinamică în aproape orice fișier al șablonului pentru a fi afișată în diferite pagini ale site-ului.

Cod de bară lateral greșit

Există o serie de defecte care se repetă de la cod la cod, care nu sunt acceptabile pe site-urile bune. Nu toate sunt, desigur, incorecte din punct de vedere tehnic, dar pot duce la defecțiuni sau sunt pur și simplu o încărcătură suplimentară de cod.

Problema 1: Cod dezordonat aruncat funcții. php

Dacă dezvoltați teme, trebuie să știți că cârligele încorporate WordPress funcționează cu cârlige. Este necesar nu numai să le cunoaștem bine, este important să le folosim. Cea mai mare problemă pe care am găsit-o este că codul este aruncat funcții. php. Ar trebui să creați o funcție de înregistrare a barei laterale și apoi să o atașați la widgets_init. Puteți vedea un exemplu despre cum să faceți acest lucru mai sus în secțiunea Înregistrați și creați o bară laterală dinamică.

Ca o notă secundară: ar trebui să uitați că puteți pur și simplu să aruncați codul în funcții. php. Utilizați întotdeauna funcția hooks în WordPress, acest lucru vă va asigura că funcțiile dvs. sunt 100% complete.

Problema 2: nu există ID-uri înregistrate

Este important să înțelegeți că, dacă id-ul nu este clar precizat, acest lucru va atrage cu siguranță anumite consecințe. Când utilizați register_sidebar() sau register_sidebars() fără a prescrie un individ id, WordPress creează automat indicatori id, numărând numărul de bare laterale deja create. Și, s-ar părea, totul este minunat. Dar aceasta este o mare greșeală. La urma urmei, când un plugin sau tema copilului creează o nouă bară laterală, barei laterale i se atribuie ID 1 (dacă este prima din flux), ceea ce face ca id-ul tuturor celorlalte bare laterale să se schimbe. Când utilizatorul accesează bara laterală, va vedea că toate widget-urile sale sunt alocate unei alte bare laterale.

Widgeturile sunt atașate barei laterale dinamice, conform acesteia id. Dacă id modificări, widget-urile se mișcă și ele. De aceea este atât de important să prescrieți corect idîn timp ce creați bara laterală. Mai sus, în secțiunea „Înregistrare și crearea unei bare laterale dinamice”, puteți vedea cum se face corect.

Un alt beneficiu al scrierii clare id este că știi exact ce id destinat a fi utilizat în alte funcții precum dynamic_sidebar()Și is_active_sidebar function_exists() nu e nevoie. După cum am menționat mai devreme în acest articol, barele laterale dinamice există încă din 2007. Puteți utiliza acest tip de verificare numai pentru compatibilitate cu versiunea anterioară. Cu toate acestea, majoritatea temelor nu sunt compatibile cu versiunea inversă și nu recomand să-l folosiți de la versiunea anterioară.

Unul dintre tipurile comune de verificare a existenței unei funcții register_sidebar() prezentat mai jos. Uitați de acest tip de verificare și creați o bară laterală.

if (function_exists("register_sidebar")) dynamic_sidebar include (TEMPLATEPATH . "/sidebar.php" );

Acesta nu este cel mai bun mod de a afișa o bară laterală într-o temă. Sistemul WordPress are o funcție get_sidebar(), cu care poți face asta cu ușurință. Folosiți-l întotdeauna așa cum se arată în exemplul de mai sus în secțiunea „Șabloane bară laterală”. Ar trebui să utilizați această funcție deoarece cârligul

Uneori există teme în care există doar o bară laterală și sunt folosite pentru nevoile temei în sine și nu puteți plasa widget-uri noi acolo. Poate că trebuie să modificați un șablon de temă existent și să adăugați o bară laterală suplimentară, să presupunem că tema are una în stânga, dar trebuie să adăugați altul în dreapta.

Rezolvarea acestei probleme nu este deloc dificilă. Este suficient să faceți mici modificări la fișierele teme functions.php și la fișierul șablon al paginii în care doriți să plasați bara laterală. Cum să aflați ce fișier este responsabil pentru afișarea paginilor

Mai întâi trebuie să înregistrați o nouă bară laterală. Acest lucru se face în fișierul functions.php din folderul șablon. register_sidebar(array("name" =>"Nouă bară laterală", "id" => "zona-widget-secundar", "before_widget" => "
  • ", "after_widget" => "
  • ", "before_title" => "

    ", "after_title" => "

    ",));

    Gata, a apărut o nouă bară laterală în panoul de control widget. Rămâne doar să personalizați puțin aspectul său în fișierul style.css (puteți copia aspectul din cel existent)

    Ce este ce este în cod

    Nume– numele barei laterale (bara laterală), acesta va fi afișat în panoul de administrare Widgeturi.
    id- identificator unic. Este necesar la adăugarea în pagină.
    înainte de_widget- cod sau text de inserat înaintea fiecărui widget.
    după_widget- cod sau text de inserat după fiecare widget.
    înainte de_titlu– codul sau textul de inserat înaintea titlului widgetului.
    după_titlu– codul sau textul de inserat după titlul widgetului.

    Atenție la ID-ul, numele barei laterale, în acest caz este „secondary-widget-area”. Trebuie să fie exact același cu numele specificat în timpul înregistrării în fișierul functions.php.

    Bara laterală este un câmp special de pe site în care sunt încorporate widget-uri. Cu alte cuvinte, este o coloană cu conținut dinamic. Aproape toate șabloanele au astfel de coloane și numărul acestora poate fi diferit. Folosit adesea de la 1 la 4 coloane.

    Pentru a face orice șablon cât mai unic, sau pur și simplu a îmbunătăți aspectul sau a ieși în evidență, puteți schimba poziția coloanelor față de câmpul principal de text în șabloane standard, gratuite și plătite pentru WordPress, ceea ce vom face în acest articol.

    Schimbarea locației barei laterale și a textului corpului

    Deci, să presupunem că șablonul pe care îl folosim are o coloană pentru widget-uri, adică o bară laterală și o coloană principală în care este plasat textul articolelor și paginilor noastre:

    Lăsați coloana cu widget-uri să fie situată în dreapta și trebuie să o mutam la stânga până la margine. În consecință, coloana cu conținutul textului principal se va muta la dreapta până la margine.

    Pentru a face toate acestea, trebuie să schimbați puțin stilurile. Conținutul text are adesea stilul #conținut, în timp ce conținutul widget are adesea stilul #sidebar. Tot ce este necesar este să schimbați proprietățile primului din float: stânga; pe plutitor: dreapta; și într-o secvență diferită pentru al doilea.

    Schimbați locația barei laterale în tema Twenty Twelwe

    Luați în considerare toate cele de mai sus pe exemplul unei teme receptive standard pentru WordPress.

    Bara laterală - parte a aproape oricărui site, de obicei plasată la stânga, la dreapta zonei de conținut sau în fața subsolului (subsolului). Barele laterale WordPress nu fac excepție. Singura diferență este că în WordPress, o bară laterală este o zonă în care widget-urile sunt afișate automat. Puteți crea un număr nelimitat de bare laterale în WordPress, dar, de exemplu, voi crea două bare laterale, în stânga și în dreapta zonei principale de conținut.

    Înregistrarea barelor laterale WordPress

    Pentru ca barele laterale să fie afișate mai întâi în panoul de administrare, trebuie să le înregistrăm. Cu alte cuvinte, adăugați codul în fișierul functions.php:

    /** * Înregistrați barele laterale. */ function fwbs_widgets_init() ( register_sidebar(array("name" => __("Coloana din dreapta", "fwbs")), "id" => "sidebar-1", "description" => __("Drept sidebar " , "fwbs"), "before_widget" => "

    ", "before_title" => "

    ", "after_title" => "

    ",)); register_sidebar(array("nume" => __("Coloana din stânga", "fwbs")), "id" => "bara laterală-2", "descriere" => __("Coloana din stânga în subsolul site-ului ", "fwbs"), "before_widget" => " ", "before_title" => "

    ", "after_title" => "

    ",)); ) add_action("widgets_init", "fwbs_widgets_init");

    Analizând codul de mai sus pentru a crea bare laterale WordPress

    Nu este atât de complicat pe cât pare la prima vedere.

    • "name" => __("Coloana din dreapta", "fwbs") - numele zonei widget, puteți scrie orice nume, doar cu atenție între paranteze, uitați-vă la ecran puteți vedea unde este afișat;
    • "id" => "sidebar-1" - ID-ul este un identificator unic atribuit barei laterale, toate barele laterale trebuie să aibă propriile lor, diferite de alte ID-uri;
    • "description" => __("Coloana din dreapta", "fwbs") - descriere, similară cu numele zonei widget;
    • "before_widget" => "
    • "after_widget" => "" - eticheta HTML care închide zona barei laterale. După cum știm, toate etichetele HTML, cu unele excepții, trebuie să fie asociate (deschidere și închidere);
    • "before_title" => "

      " - titlul widget-ului va fi împachetat într-o etichetă H4 cu clasa

      , puteți schimba semnificația antetului H1, H2, H3, H4, H5, H6 și vă puteți atribui propriile clase;

    • "after_title" => "„- închideretag pair pentru titlul widget-ului.

    Acum mergem la panoul de administrare, la secțiunea „widgeturi” și ne uităm la rezultat. Iată o poză cu ce am primit:

    Cu acest cod, am înregistrat două zone widget WordPress, acum trebuie să le afișez pe ecran.

    Afișarea barelor laterale WordPress

    Pentru a afișa barele laterale oriunde în șablon, este logic să scrieți următorul cod în locul potrivit:

    Câteva explicații despre cod:

    • - Cod PHP care dă o comandă, dacă există widget-uri în bara laterală sub id=sidebar-1, atunci ar trebui să fie afișat pe ecran, dacă nu există widget-uri, bara laterală nu este afișată;
    • - Cod PHP care apelează bara laterală sub id=sidebar-1 în locul în care ați scris-o în codul șablonului.

    Dar după cum puteți vedea, în șabloanele WordPress, codul de ieșire al barei laterale este plasat în fișiere sidebar.php separate, iar apoi conținutul este scos din fișierul sidebar.php în locul potrivit în șablon. Deoarece știm că WordPress redă conținutul în mod dinamic și șablonul site-ului este format din mai multe părți, una dintre părți este fișierul sidebar.php Permite-mi să fac asta.

    Crearea fișierului sidebar.php

    Creați un fișier precum sidebar-right.php , dați-i un titlu și inserați codul de mai sus în el. Toate împreună vor arăta astfel:

    După cum puteți vedea din exemplu, am completat codul cu un marcaj HTML suplimentar. Acum, pentru a afișa zona widget, rămâne să scrieți următoarele în locul potrivit:

    Pentru coloana din stânga, fișierul sidebar-left.php este creat în consecință și scos în locul potrivit al șablonului astfel:

    După cum se spune, găsiți o diferență în cod.

    Gata, barele laterale au fost create, acum singurul lucru rămas este să creați markup pentru ele în șablon și să scrieți stiluri CSS.



    
    Top