WordPressiin on saatavilla paljon ilmaisia sivupohjia, mutta yleensä täysin ilmaiset teemat ovat melko yksipuolisia, eivätkä vastaa vaativan käyttäjän tarpeita. Parhaaseen lopputulokseen pääsee, kun rakentaa itse oman teemansa käyttäen hyväksi WordPressin sisäänrakennettuja ominaisuuksia. Tämä artikkeli esittelee ehtolausekkeiden käyttöä muutaman käytännön esimerkin kautta. Ehtolausekkeiden monipuolinen käyttö on ehdoton edellytys, mikäli sivustosta haluaa tehdä joustavan ja monipuolisen. Lyhyesti sanottuna, ehtolausekkeiden avulla voidaan hallita, mitä sisältöä näytetään ja miten se näytetään.
Dynaaminen valikko Mikäli haluat rakentaa valikon, joka korostaa aina kulloinkin aktiivisena olevan välilehden, käytä alla esitettyä rakennetta (Esimerkki on suoraan omalta sivustoltani). Korostaminen tapahtuu lisäämällä CSS luokka current <li> -elementin sisään, kun annetut ehdot täyttyvät. Esimerkin kolmessa ensimmäisessä tapauksessa ehtona on sivun nimi ja viimeinen eli artikkelit -välilehti aktivoituu aina, kun kyseessä on artikkeleiden etusivu, aiheen etusivu, arkiston etusivu tai hakutulossivu jne.
<ul class="menu">
<li<?php if ( is_page(’etusivu’) ) { echo ‘ class=”current”‘; } ?>><a href=”#”>Etusivu</a></li>
<li<?php if ( is_page(’palvelumme’) ) { echo ‘ class=”current”‘; } ?>><a href=”#”>Palvelumme</a></li>
<li<?php if ( is_page(’yhteystiedot’) ) { echo ‘ class=”current”‘; } ?>><a href=”#”>Yhteystiedot</a></li>
<li<?php if ( is_home() || is_category() || is_archive() || is_search() || is_single() || is_date() ) { echo ‘ class=”current”‘; } ?>><a href=”#”>Artikkelit</a></li>
</ul>
Dynaaminen sivun otsikko Ehtolausekkeita voi käyttää myös otsikon muotoilussa. Samanlainen <title> -elementti kaikilla sivuilla ei näytä hyvältä kävijöiden, eikä myöskään hakukoneiden silmissä. Vaihtelua saa mm. seuraavasti:
<title>
<?php
if (is_home()) {
echo bloginfo('name');
} elseif (is_404()) {
echo 'Virhe 404 Sivua ei löydy';
} elseif (is_category()) {
echo 'Aihe:'; wp_title('');
} elseif (is_search()) {
echo 'Haun tulokset';
} elseif ( is_day() || is_month() || is_year() ) {
echo 'Arkistot:'; wp_title('');
} else {
echo wp_title('');
}
?>
</title>
Dynaaminen sisältö Jos haluat sisällyttää tiedoston pelkästään etusivulle (joka voi siis olla staattinen sivu tai artikkeleiden etusivu), koodi on seuraavanlainen:
<?php if (is_front_page()) { include('file.php'); } ?>
Mikäli taas tiedosto halutaan lisätä artikkeleiden etusivulle, voit käyttää:
<?php if (is_home()) { include('file.php'); } ?>
Tietyn aiheen artikkeleiden korostaminen Ajatellaan, että haluat lisätä CSS luokan korostaaksesi tietyn aiheen (esimerkissä aiheen numero 2) artikkeleita, jotka ovat jääneet sivustollasi vähemmälle huomiolle. Tämä onnistuu seuraavalla koodinpätkällä:
<?php if (in_category('2')) { echo ( 'class="feature"'); } ?>
Vaihtoehtoinen Single template Oletetaan, että haluat käyttää eri Single Templatea (myöhemmin sivupohjaa) eri aiheiden yksittäisille artikkeleille. Tässä esimerkissä oma sivupohja halutaan tehdä aiheiden WordPress ja Hakukoneoptimointi artikkeleille. Käyttämällä in_category funktiota voidaan tarkistaa, minkä aiheen alla artikkeli on julkaistu ja valita oikea sivupohja kullekin artikkelille. Käytännössä tämä tapahtuu lisäämällä alkuperäiseen single.php tiedostoon alla oleva koodi. Mikäli artikkeli on aiheesta WordPress, valitaan sivupohja single_wp.php, mikäli taas aiheesta Hakukoneoptimointi, valitaan sivupohja single_optimointi.php, muuten käytetään oletussivupohjaa eli sivupohjaa single.php.
<?php
$post = $wp_query->post;
if (in_category('Wordpress')) { include(TEMPLATEPATH . '/single_wp.php'); }
elseif (in_category('Hakukoneoptimointi')) { include(TEMPLATEPATH . '/single_optimointi.php'); }
else { include(TEMPLATEPATH . '/single.php'); } ?>

2 kommenttia
Hyvä artikkeli.Onko mahdollista kirjoittaa artikkeli WordPressin päivittämisestä suomeksi?
Kiitos!
Wordpressin Codexista löytyy todella kattava artikkeli
aiheesta. Osoite on http://codex.wordpress.org/Translating_WordPress.
Itse olen käyttänyt joidenkin lisäosien suomentamiseen
PoEditiä. Katoppa aluks tuolta.