sidebar wordpress. WordPress-sidefelt, WordPress-sidefeltopprettelse. Standard WordPress-widgeter

Viser det første aktive widgetpanelet (en sidefelt er et panel som inneholder minst én widget). Du kan spesifisere ID eller nummer til panelet, hvilket som skal vises hvis nettstedet har mer enn ett widgetpanel.

dynamic_sidebar() returnerer true eller false, med returresultatet som også viser widgetlinjen. Returverdien kan for eksempel brukes til å bestemme om kode som erstatter widgets skal behandles når det ikke er widgets i panelet (se eksempel #1).

returnerer

sant hvis widgetpanelet ble funnet. usann hvis panelet ikke eksisterer eller ikke inneholder noen widgets.

Bruk

$indeks (streng/nummer) Panel-ID-en spesifisert i id-parameteren til register_sidebar()-funksjonen da panelet ble registrert. Hvis et tall er gitt, vil panelet med ID-sidefelt-$index bli søkt.
Standard: 1 (sidefelt-1)

Eksempler

#1 Vis sidefeltet hvis det finnes.

Dette eksemplet viser hvordan du viser det første ikke-tomme sidefeltet (sidefelt-ID-en ble ikke spesifisert under registreringen), eller hvis den ikke finnes, behandle den angitte koden:

#2 Vis ønsket sidefelt.

#3 Sjekk for tilstedeværelsen av panelet og vis det

I eksempel 2 sjekket vi ikke for tilstedeværelsen av et panel og widgets i det. I dette eksemplet vil vi sjekke for tilstedeværelsen av et panel for ikke å vise unødvendig HTML-tagger (

",

[ fargestift - 5e1ff7d787fb8042608178 inline = "true" ] "after_widget" => "" ,

før_tittel

De fleste widgets viser en tittel hvis brukeren skriver inn den. Argument før_tittel dette er åpningselementet i widgetens tittel. Som standard skriver WordPress det som < h2 > . For å bruke tagger < h2 > ikke verdt det, i dette tilfellet vil tagger gjøre det < h3 > Og < h4 > . For intuitivitet og lesbarhet av koden, ikke lag klassenavn uten bindestreker, slik at det ville være mer praktisk for deg å lese navnet selv, det er veldig viktig hvis du ikke har jobbet med siden på en stund.

etter_tittel

Argument etter_tittel dette er det avsluttende elementet spesifisert i argumentet før_tittel. Som standard skriver WordPress det som < / h2 > .

Du må sørge for at verdien samsvarer med verdien spesifisert i argumentet før_tittel.

"etter_tittel" => ""

"etter_tittel" => ""

Vise en dynamisk sidefelt dynamic_sidebar()

Når opprettelsen av sidefeltet er fullført, kan du begynne å vise det inne i temaet. WordPress har laget en funksjon for dette kalt < a title = "Codex Wordpress-funksjon dynamic_sidebar()" href= "http://codex.wordpress.org/Function_Reference/dynamic_sidebar" target="_blank" > dynamic_sidebar()< / a > . Denne funksjonen spør alltid etter en parameter $indeks, som samtidig kan lokaliseres både i argumentet id, og i argumentasjonen Navn(spesifisert under opprettelsen av sidefeltet). Selv om det er teknisk mulig å bruke begge, er det mye tryggere å bruke den du har foreskrevet. id.

Ved å bruke koden nedenfor i en av malene dine kan du plassere sidefeltet hoved beskrevet rett ovenfor. noter det div Med klasse Og id Du kan endre etter eget skjønn og skru ulike css stiler.

// kall opp visningsfunksjonen til sidelinjen

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

// kall opp visningsfunksjonen til sidelinjen

< / div >

Vanligvis er denne koden plassert i filen sidefelt - primær . php, som du vil lære om på et øyeblikk når vi snakker om sidefeltmaler. derimot dynamic_sidebar() kan kalles hvor som helst i temaet ditt.

  • Vi gjør og

Standard innholdsvisning

Noen temautviklere viser sitt eget innhold hvis brukeren ikke har festet noen widgets til en bestemt sidefelt. For å se etter widgets i sidefeltet, bruk den betingede taggen is_active_sidebar() .

Akkurat som en funksjon dynamic_sidebar(), brukes til å fylle sidefeltet, funksjonen is_active_sidebar() spør alltid om en parameter $indeks, som burde være ID sidefeltet du sjekker.

Med koden nedenfor kan vi teste sidefeltet hoved for widgets. Hvis det er widgets, vil vi vise dem; hvis ikke, vil vi vise innholdet som vi har spesielt forberedt.

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

< / div >

Viser ikke sidefelt uten widgets

Den forrige delen viste deg hvordan du plasserer manglende innhold når et bestemt sidefelt ikke er aktivt, men du har også muligheten til å skjule (ikke vise noe) en sidefelt når sidefeltet ikke er aktivt.

Vi vil igjen bruke funksjonen is_active_sidebar() for å sjekke sidefeltet hoved for widgets.

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

< / div >

Forresten, her kan du tenke på noen interessante ting. Du kan for eksempel lage en dynamisk sidefeltbredde for innholdet ditt basert på hvilke sidefelter som er aktive og hvilke som ikke er det. Mer om dette i de neste artiklene.

Sidefeltmaler - Sidefelt

Vi har berørt alle aspekter ved å lage og jobbe med en dynamisk sidefelt, men det skal bemerkes at det er andre interessante funksjoner. Så la oss ta en titt på sidefeltmaler.

Sidefeltmalen brukes til å være vert for den dynamiske sidefeltkoden (se "Dynamisk sidefeltvisning" ovenfor). I gjennomsnitt har alle WordPress-temaer én mal kalt sidefelt. php. Hvis temaet ditt har én sidefelt, er denne malen tilstrekkelig.

Sidefeltmaler fylles inne i temaet ved hjelp av funksjonen get_sidebar().Koden nedenfor er det jeg vanligvis bruker for å fylle ut en fil sidefelt. php.

[ fargestift - 5e1ff7d788042260898923 inline = "true" ]

get_sidebar() spør også alltid om en parameter $ navn, som lar deg fylle ut mer spesifikke mønstre. For eksempel ber koden nedenfor om en malfil sidefelt - primær . php.

[ fargestift - 5e1ff7d788051693571425 inline = "sant" ]

For å holde temaet ditt i orden og skille koden, må du lage en spesifikk mal for hver dynamisk sidefelt. Jeg foreslår at du først oppretter to dynamiske sidefelt med unike id: hoved Og sekundær. For bedre organisering, lag to filer: sidefelt - primær . php og sidefelt-sekundær. php.

Du trenger koden nedenfor for å lage begge malene.

[ fargestift - 5e1ff7d788066428860015 inline = "sant" ]

Ovenfor er den tradisjonelle koden jeg bruker for å lage maler. Du kan endre den litt for å passe dine personlige behov best. Du må fortsatt sørge for at du bruker funksjonen get_sidebar() når du fyller ut sidefeltmalen.

Husk at sidefeltmaler ikke alltid viser dynamiske sidefelter. De kan teknisk sett inneholde kodet brukerinnhold som kan reflektere hva som helst. Husk også at du kan plassere en dynamisk sidefelt i nesten hvilken som helst fil i malen din for å vises på forskjellige sider på nettstedet.

Dårlig sidestrekkode

Det er en rekke feil som gjentar seg fra kode til kode, som ikke er akseptable på gode nettsteder. Ikke alle av dem er selvfølgelig teknisk feil, men de kan føre til funksjonsfeil eller er rett og slett en ekstra belastning med kode.

Problem 1: Rotete kode dumpet inn funksjoner. php

Hvis du utvikler temaer, må du vite at WordPress innebygde kroker fungerer med kroker. Det er nødvendig ikke bare å kjenne dem godt, det er viktig å bruke dem. Det største problemet jeg har funnet er at koden bare blir dumpet inn funksjoner. php. Du bør opprette en registreringsfunksjon for sidefelt og deretter legge den til widgets_init. Du kan se et eksempel på hvordan du gjør dette ovenfor i delen Registrer og opprett en dynamisk sidefelt.

Som en sidenotat: Du bør glemme at du bare kan dumpe koden inn funksjoner. php. Bruk alltid hooks-funksjonen i WordPress, dette vil sikre at funksjonene dine er 100 % komplette.

Problem 2: ingen registrerte IDer

Det er viktig å forstå at hvis id-en ikke er tydelig stavet ut, vil dette sikkert ha visse konsekvenser. Når du bruker register_sidebar() eller register_sidebars() uten å foreskrive en person id, oppretter WordPress automatisk indikatorer id, teller antall sidefelt som allerede er opprettet. Og det ser ut til at alt er fantastisk. Men dette er en stor feil. Tross alt, når en plugin eller barn tema oppretter et nytt sidefelt, tildeles sidefeltet id 1 (hvis det er det første i strømmen), noe som fører til at IDen til alle andre sidefelt endres. Når brukeren får tilgang til sidefeltet, vil han se at alle widgetene hans er tilordnet en annen sidebar.

Widgets er knyttet til den dynamiske sidepanelet, i henhold til dens id. Hvis id endringer, flytter også widgetene. Det er derfor det er så viktig å foreskrive riktig id mens du oppretter sidefeltet. Over, i delen "Registrering og opprettelse av en dynamisk sidefelt", kan du se hvordan du gjør det riktig.

En annen fordel med tydelig skriving id er at du vet nøyaktig hva id beregnet på å brukes i andre funksjoner som f.eks dynamic_sidebar() Og is_active_sidebar function_exists() det trengs ikke. Som nevnt tidligere i denne artikkelen, har dynamiske sidefelt eksistert siden 2007. Du kan bare bruke denne typen sjekk for bakoverkompatibilitet. De fleste temaer er imidlertid ikke bakoverkompatible, og jeg anbefaler ikke å bruke det siden forrige versjon.

En av de vanlige typene for å sjekke om det finnes en funksjon register_sidebar() presentert nedenfor. Glem denne typen sjekk og bare lag en sidefelt.

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

Dette er ikke den beste måten å vise et sidefelt i et tema. WordPress-systemet har en funksjon get_sidebar(), som du enkelt kan gjøre dette med. Bruk den alltid som vist i eksemplet ovenfor i delen 'Sidefeltmaler'. Du bør bruke denne funksjonen fordi kroken

Noen ganger er det temaer der det bare er 1 sidefelt og de brukes til behovene til selve temaet, og du kan ikke plassere nye widgets der. Kanskje du må endre en eksisterende temamal og legge til en ekstra sidefelt, la oss si at temaet har en til venstre, men du må legge til en annen til høyre.

Å løse dette problemet er slett ikke vanskelig. Det er nok å gjøre små endringer i functions.php-temafilene og malfilen til siden der du vil plassere sidefeltet. Hvordan finne ut hvilken fil som er ansvarlig for å vise sider

Først må du registrere et nytt sidefelt. Dette gjøres i functions.php-filen i malmappen. register_sidebar(array("name" =>"Ny sidefelt", "id" => "sekundær-widget-område", "before_widget" => "
  • ", "after_widget" => "
  • ", "before_title" => "

    ", "after_title" => "

    ",));

    Ferdig, et nytt sidefelt har dukket opp i widgetkontrollpanelet. Det gjenstår bare å tilpasse utseendet i style.css-filen litt (du kan kopiere utseendet fra den eksisterende)

    Hva er hva i koden

    Navn– navnet på sidefeltet (sidefeltet), det vil bli vist i administrasjonspanelet Widgets.
    id- unik identifikator. Nødvendig når du legger til siden.
    før_widget- kode eller tekst som skal settes inn før hver widget.
    etter_widget- kode eller tekst som skal settes inn etter hver widget.
    før_tittel– kode eller tekst som skal settes inn før widgettittelen.
    etter_tittel– kode eller tekst som skal settes inn etter widgettittelen.

    Vær oppmerksom på ID-en, navnet på sidefeltet, i dette tilfellet er det "sekundær-widget-område". Det må være nøyaktig det samme som navnet angitt under registreringen i functions.php-filen.

    Sidefelt er et spesialfelt på nettstedet der widgets er innebygd. Det er med andre ord en spalte med dynamisk innhold. Nesten alle maler har slike kolonner, og antallet kan være forskjellig. Brukes ofte fra 1 til 4 kolonner.

    For å gjøre enhver mal så unik som mulig, eller ganske enkelt forbedre utseendet eller skille seg ut, kan du endre plasseringen av kolonnene i forhold til hovedtekstfeltet i standard-, gratis- og betalte maler for WordPress, som er det vi vil gjøre i denne artikkelen.

    Endre plasseringen av sidefeltet og brødteksten

    Så la oss si at malen vi bruker har én kolonne for widgets, det vil si én sidefelt, og én hovedkolonne der teksten til artiklene og sidene våre er plassert:

    La kolonnen med widgets være plassert til høyre, og vi må flytte den til venstre helt til kanten. Følgelig vil kolonnen med hovedtekstinnholdet flyttes til høyre til kanten.

    For å gjøre alt dette, må du endre stilene litt. Tekstinnhold har ofte #content-stilen, mens widgetinnhold ofte har #sidebar-stilen. Alt som trengs er å endre egenskapene til den første fra float: venstre; på flyte: høyre; og i en annen sekvens for den andre.

    Endre plasseringen av sidefeltet i Twenty Twelwe-temaet

    Vurder alt det ovennevnte på eksemplet med et standard responsivt tema for WordPress.

    Sidefelt - en del av nesten alle nettsteder, vanligvis plassert til venstre, til høyre for innholdsområdet, eller foran bunnteksten (bunntekst). WordPress-sidefelt er intet unntak. Den eneste forskjellen er at i WordPress er en sidefelt et område der widgets automatisk vises. Du kan lage et ubegrenset antall sidefelt i WordPress, men for eksempel vil jeg lage to sidefelt, til venstre og høyre for hovedinnholdsområdet.

    Registrering av WordPress-sidepaneler

    For at sidefeltene skal vises i administrasjonspanelet først, må vi registrere dem. Med andre ord, legg til koden i functions.php-filen:

    /** * Registrer sidefelt. */ function fwbs_widgets_init() ( register_sidebar(array("name" => __("Høyre kolonne", "fwbs"), "id" => "sidebar-1", "description" => __("Høyre sidefelt " , "fwbs"), "before_widget" => "

    ", "before_title" => "

    ", "after_title" => "

    ",)); register_sidebar(array("name" => __("Venstre kolonne", "fwbs"), "id" => "sidefelt-2", "description" => __("Venstre kolonne i sidebunntekst ", "fwbs"), "before_widget" => " ", "before_title" => "

    ", "after_title" => "

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

    Parser koden ovenfor for å lage WordPress-sidefelt

    Det er ikke så komplisert som det ser ut ved første øyekast.

    • "name" => __("Høyre kolonne", "fwbs") - navnet på widgetområdet, du kan skrive hvilket som helst navn, bare forsiktig mellom parentesene, se på skjermen du kan se hvor det vises;
    • "id" => "sidefelt-1" - ID er en unik identifikator tilordnet sidefeltet, alle sidefelt må ha sine egne, forskjellig fra andre IDer;
    • "description" => __("Høyre kolonne", "fwbs") - beskrivelse, lik navnet på widgetsonen;
    • "before_widget" => "
    • "after_widget" => "" - HTML-taggen som lukker sidefeltsonen. Som vi vet må alle HTML-tagger, med noen unntak, pares (åpning og lukking);
    • "before_title" => "

      " - widgettittelen vil bli pakket inn i en H4-tag med klassen

      , kan du endre betydningen av overskriften H1, H2, H3, H4, H5, H6 og tildele dine egne klasser;

    • "etter_tittel" => ""- lukkingpar-tag for tittelen på widgeten.

    Nå går vi til adminpanelet, til "widgets"-delen og ser på resultatet. Her er et bilde av det jeg fikk:

    Med denne koden registrerte jeg to WordPress-widget-soner, nå må jeg vise dem på skjermen.

    Viser WordPress-sidepaneler

    For å vise sidefelt hvor som helst i malen, er det logisk å skrive følgende kode på riktig sted:

    Noen få forklaringer på koden:

    • - PHP-kode som gir en kommando, hvis det er widgets i sidefeltet under id=sidebar-1, så skal det vises på skjermen, hvis det ikke er widgets, vises ikke sidefeltet;
    • - PHP-kode som kaller sidefeltet under id=sidebar-1 på stedet der du skrev det i malkoden.

    Men som du kan se, i WordPress-maler, er sidebar-utdatakoden plassert i separate sidebar.php-filer, og deretter sendes innholdet ut fra sidebar.php-filen på riktig sted i malen. Siden vi vet at WordPress gjengir innhold dynamisk og nettstedsmalen består av flere deler, er en av delene sidebar.php-filen La meg gjøre det.

    Opprette sidebar.php-filen

    Lag en fil som sidebar-right.php , gi den en tittel og lim inn koden ovenfor i den. Alt sammen vil det se slik ut:

    Som du kan se fra eksempelet, supplerte jeg koden med ekstra HTML-markering. Nå, for å vise widgetområdet, gjenstår det å skrive følgende på riktig sted:

    For kolonnen på venstre side opprettes filen sidebar-left.php tilsvarende og sendes ut på riktig sted i malen slik:

    Som de sier, finn en forskjell i koden.

    Det er det, sidefeltene er opprettet, nå er det eneste som gjenstår å lage markup for dem i malen og skrive CSS-stiler.



    
    Topp