Sivupalkin vimpainten järjestyksen vaihtaminen

WordPressin kanssa voi joskus tulla tilanteita, joissa sivupalkin vimpaimien järjestystä olisi mukava muuttaa sivutyypistä riippuen. WordPress itsessään ei tarjoa tähän oikein työkaluja, mutta asiaan on kyllä ratkaisuja. Widget Logic, esimerkiksi, lisää vimpaimiin logiikkaa, jolla niiden näkyvyyttä voi säädellä. Toinen vaihtoehto on tehdä erillinen sivupalkki, joka näytetään halutulla sivutyypillä.

Kumpikaan ratkaisuista ei ole ihanteellinen, mikäli halutaan vain siirtää vimpaimen paikkaa sivupalkissa. Sekä Widget Logicin että toisen sivupalkin käyttäminen edellyttävät saman sisällön luomista ja ylläpitämistä moneen kertaan. Sitä pyrin aina välttämään, koska muuten toinen versio sisällöstä tapaa jäädä päivittämättä, kun muutoksia tulee.

Yksi ratkaisu vimpaimien siirtelyyn on wp_get_sidebars()-funktio ja sen kutsuma sidebars_widgets-suodin, joka antaa käpisteltäväksi sivupalkin kaikkien vimpaimien luettelon. Sen avulla on helppo keikauttaa järjestys haluttuun muotoon:

add_filter('sidebars_widgets', 'sivupalkin_jarjestys');
function sivupalkin_jarjestys($w) {
    if (in_category('2') && is_single()) {
        $widget = array_shift($w["sidebar-1"]);
        array_splice($w["sidebar-1"], 6, 0, $widget);
    }
    return $w;
}

Tässä esimerkiksi siirretään sivupalkista sidebar-1 ensimmäinen vimpain kuudenneksi, kun ollaan kategorian 2 yksittäisellä sivulla. Näppärää ja tehokasta.

Kysy tai kommentoi

  • (ei näy muille)

XHTML: Voit käyttää näitä tägejä: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

2 kommenttia – uusimmat ensin, eli kysymykset löytyvät vastausten jälkeen

  1. Mikko Saari

    Teeman functions.php on oikea paikka. Artikkeli on sitten jo neljä vuotta vanha, että ei mitään takeita toimiiko se yhä.

  2. Miikka Eerola

    Moi,
    Teen kaikukortille kotisivuja. Käytetään Manta-sivupohjaa, ongelmana just sidebarin järjestys mobiilinäkymässä, minne laitan tuon koodin? Style.css:ssä se ilmoitti virheistä.. Jos löydetään ratkaisu, olisin erittäin kiitollinen.
    Miikka Eerola, IT-Assitentti