Egyedi sablonok készítése bejegyzésekhez WordPressben

Talán már nálad is felmerült az igénye annak, hogy az egyes bejegyzésekhez egyedi megjelenést készíthess. Nos, most megmutatjuk, hogy hogyan csinálhatsz a különféle speciális bejegyzésekhez (pl. videó bejegyzéshez, játék oldalhoz), esetleg meghatározott szerzőkhöz, témákhoz kapcsolódó egyedi sablont.
Őszinték leszünk: ehhez a cikkben foglaltakhoz annak érdemes nekikezdeni, aki rendelkezik alapfokú HTML- és CSS-ismeretekkel, és emellett van némi elképzelése arról is, hogy hogyan működnek a WordPress sablonok…

Egyedi bejegyzés-sablon különböző bejegyzésekhez

Ezzel a technikával különböző egyedi bejegyzés-sablonokat készíthetsz, és írás közben (vagy előtt) mindig eldöntheted, hogy éppen melyik sablonra lesz szükséged adott esetben. A kivitelezéshez mindenképp le kell töltened egy bővítményt:  Single Post Template , majd kövesd az alábbi utasításokat.

Készítened kell egy egyedi fájlt, amit a példa kedvéért mi sajatpostkienezet.php-nek nevezünk. Tudod, megnyitod pl. a jegyzettömb programot és elmented az üres fájlt a fenti néven és kiterjesztéssel. Ha elakadsz, kérdezz minket!!!

Legegyszerűbb, ha átmásolhatod a sima  single.php fájlt tartalmát a sajatpostkienezet.php fájlba, és aztán megváltoztatod benne azt, amire nincs szükséged, vagy készíthetsz egy attól teljesen eltérő változatot is, ha az jobban tetszik. De egyvalamit biztosan meg kell tenned, ez pedig a következő: az alábbi kódot mindenképp add hozzá az elkészült fájlod elejéhez:
[codesyntax lang=”php”]

<?php
/*
Single Post Template: [SajatKinezetNeve]
Description: Ez opcionális, de később segíthet felidézni, hogy miért is csináltad a fájlt..
*/
?>

[/codesyntax]
Ha végeztél, és elkészült az egyedi sablonod egyszerű bejegyzésekhez, mentsd a többi fájl közé a sablon-könyvtáradba (wp-content/themes/sablonod_mappaja/).

Feltételezzük, hogy a bővítményed már aktiválásra került, mikor a WordPress admin-felületén hozzálátsz egy új bejegyzés megírásának, így látnod kell egy legördülő menüt, amiből kiválaszthatod az aktuális bejegyzésnek megfelelő sablont.

Egyedi sablon WordPress bejegyzésehez

Fontos: ha nem választod ki egyik sablont sem, akkor automatikusan az alapértelmezett sablont fogod látni. Sablonod pedig annyi lehet, amennyit csak szeretnél.

Egyedi bejegyzés-sablonok meghatározott kategóriákhoz

A fenti módszer ideális ha speciális bejegyzésekről van szók, de ha egy meghatározott témához (kategóriához) szeretnél egy teljesen más sablont, akkor a módszer automatizálható néhány kóddal, amit a fájlba kell beszúrni. Ezzel időt takarítasz meg, hisz nem kell minden egyes bejegyzésnél kiválasztani az egyedi sablont, főleg, ha már több írás is van ugyanabban a kategóriában.

  1. Ahhoz, hogy eltérő bejegyzés-sablonokat használhass az egyes kategóriákhoz, a következő kell tenned. Hozzd létre az egyes kategóriákhoz a sablonfájljaidat. Ezeket másold be a sablonod mappájába: wp-content/themes/sablonodneve/ 
  2. Az egyedi bejegyzés-sablonokat nevezd el a következő módon: single_sablonodneve1.php, single_sablonodneve2.php, single_sablonodneve3.php stb.
  3. Ezen kívül másold ki a single.php fájlod tartalmát egy single_default.php fájlba. Ez fontos!
  4. Ezután az alábbi kódot be kell másolnod a single.php fájlodba oly módon, hogy átírod a kategóriák neveit és a saját sablonod neveit benne.:  kategoria_neve1, masik_kategoria_neve, single_sablonodneve1.php, single_sablonodneve2.php

Ha szeretnél további egyedi sablonokat létrehozni a kategóriákhoz, akkor csak szúrj be annyi feltételt, amennyit csak akarsz.

[codesyntax lang=”php”]

<?php

  if ( ! function_exists( 'post_is_in_descendant_category' ) ) {
      function post_is_in_descendant_category( $cats, $_post = null ) {
          foreach ( (array) $cats as $cat ) {
              // get_term_children() accepts integer ID only
              $descendants = get_term_children( (int) $cat, 'category' );
              if ( $descendants && in_category( $descendants, $_post ) )
                  return true;
          }
          return false;
      }
  }
?>

<?php

  $post = $wp_query->post;
  if (in_category( 'kategoria_neve' ) || post_is_in_descendant_category( get_term_by('slug','kategoria_neve1','category') )) {
      include(TEMPLATEPATH.'/single_sablonodneve1.php');
  } elseif (in_category( 'masik_kategoria_neve' ) || post_is_in_descendant_category( get_term_by('slug','masik_kategoria_neve','category') )) {
      include(TEMPLATEPATH.'/single_sablonodneve2.php');
  } else {
      include(TEMPLATEPATH.'/single_default.php');
  }
?>

[/codesyntax]

 

Ez a kód utasítja a WordPresst, hogy keressen egy olyan sablont, aminek a neve single_sablonodneve1.php, single_sablonodneve2.php. Ha nem talál, akkor betölti a single_default.php tartalmát.

Egész pontosan nem tudjuk meghatározni, hogy hogyan kell elkészítened az egyedi bejegyzés-sablonodat, hiszen rajtad múlik, hogy mi az, amire szükséged van, de ha elakadsz, bátran kérdezz minket. Amit újra hangsúlyoznunk kell, az az, hogy minden ilyen egyedi sablonoknak a sablon-könyvtáradban kell lennie.

Hozzászólás

  1. Sziasztok! Megosztottam Google+1-el, de nem jelent meg a cikk többi része. Mi a teendő?

  2. Sziasztok!

    Ez melyik plugin csinálja, hogy előbb likeolni kell, és csak után olvashatom végig?
    Nagyon tuti.

    Köszi!

  3. Okés…letöltöttem…telepítettem…és hogyan tovább? Miért a legizgalmasabb dolognál kell abba hagyni?…Így Ez nem leírás és nem segítség :S

    • Szia Gábor, a cikket végig olvashatod, ha megosztod másokkal is a Facebook-on, Twitteren vagy Google+ -on keresztül.

    • A search és archiv. Ha leszedsz minden widgetet minkét sidebarból, ez a kettő akkor is ott marad. a forráskódban kell kitörölni? Mindkét sidebar-t le szeretném szedni, és egy címke, keresés, (nem search) widgetet behúzni.

      • Az Advertisement dobozra szükséged van? Ha nem, akkor a if (!art_sidebar(1)): előtti záró div-ig töröld ki a tartalmát.

        • Hú, így teljesen összeesett a sablon. (a sidebar1.php-ban töröltem)
          Most visszaállítottam, csak az advertisement kifejezést töröltem, maradt egy üres doboz helyette. ha behúzok másik widgetet akkor is megmarad az üres doboz…

  4. Sziasztok!

    Tudnátok segíteni sablonszerkesztésben?
    A Vacation Home 1.0 | Szerző: Wrangler sablon oldalsávjából szeretném kiszedni a search és archiv widgeteket, de ha eltávolítom az összes widgetet akkor is benn marad ez a kettő.
    Előre is hálás köszönet,
    Kriszta