Anatomija wordpress teme

Header

Svačija maza. header.php je odgovorna za ono što vidite na vrhu svakog sajta. 99.9999% svih WordPress tema počinju sa header.php. Sadržaj ove fajle počinje sa kodom s kojim bilo koja web stranica na internetu počinje, naime sa DOCTYPE i Html atributima.

Doctype – doctype je deklaracija koja ima veze sa standardima na webu i mada ih ima više većina web stranica koristi XHTML. 1.0. i docktype će izgledati ovako:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

Odmah poslije ovoga dolazi jezički atribut (i njih ima više) čija uloga je da pripreme tražilicu za dolazeći kod.

<html xmlns=”http://www.w3.org/1999/xhtml” <?php language_attributes(); ?>>

Pošto HTML5 preuzima polako vodstvo kao glavni programski jezik, njegov DOCTYPE je pojednostavljen i bit će samo < !DOCTYPE html>. Kompletna internet zajednica radi na implementaciji html5 i uskoro će svijet weba biti dominiran novim standardom.

META Elementi

Nakon što su ubaceni obavezni dosktype i atributi otvara se i s njim sekcija. Unutar “head” sekcije i vrijeme je da se biraju tagovi koji su “informacija o informaciji” gdje je HTML informacija a meta tagovi opisuju informaciju. Moramo “reći” tražilicama koju vrstu sadržaja serviramo i kojim jezikom pričamo, WordPress nam daje praktične template tags za tu svrhu:

<meta http-equiv=”Content-Type” content=”<?php bloginfo(‘html_type’); ?>;
charset=<?php bloginfo(‘charset’); ?>” />

Sad dolazi opis (description) koji je veoma važan i ključne riječi (keywords) koji su manje važni. Pošto su opisi i ključne riječi za svaki pojedini članak različiti (zavise od onoga što ste napisali) najbolje je pustiti da se oni dinamično automatski pojave uz pomoć All-In-One SEO Pack plugina koji to odrađuje za nas.

The Title – Naslov

U <head> će biti i naslov <title> stranice koji je neopisivo važna linija u svakom HTML kodu. To je ono što će se pojaviti na vrhu tražilice i koji se koristi u rezultatima tražilica. Title nas opet stavlja u dilemu jer je taj dio koda dozvoljen samo jednom u headeru a koristi ga svaka pojedina stranica i post. Kako da riješimo tu dilemu i napravimo title koja je optimalna za svaki post? To se radi tako što se u header.php ubaci funkcija koja omogućava atraktivan i opisan naslov za svaku moguću stranicu na sajtu:

<title>
<?php if (function_exists(‘is_tag’) && is_tag()) {
single_tag_title(‘Tag Archive for &quot;’); echo ‘&quot; – ‘;
} elseif (is_archive()) {
wp_title(”); echo ‘ Archive – ‘;
} elseif (is_search()) {
echo ‘Search for &quot;’.wp_specialchars($s).’&quot; – ‘;
} elseif (!(is_404()) && (is_single()) || (is_page())) {
wp_title(”); echo ‘ – ‘;
} elseif (is_404()) {
echo ‘Not Found – ‘;
}
if (is_home()) {
bloginfo(‘name’); echo ‘ – ‘; bloginfo(‘description’);
} else {
bloginfo(‘name’);
}
if ($paged >
1) {
echo ‘ – page ‘. $paged;
} ?>
</title>

All-In-One SEO Pack plugin može da se koristi i za ovo sa dodatnom prednošću što drzi header.php kod lakšim. Jedina mana je u tome što ovaj plugin nije precizan kao što ste vi sami.

Link Elementi

je mjesto gdje se stavlja link ka vanjskim CSS i JavaScript fajlama. Pošto WordPress zahtjeva CSS onda ga trebate koristiti i link ka CSSu se stavlja ovako:

<link rel=’stylesheet’ href=’<?php bloginfo(“stylesheet_url”); ?>
type=’text/css’ media=’screen’ />

Funkcija bloginfo(“stylesheet_url”) će pokazati tačan URL za stylesheet.

Na drugu ruku, ubacivanje JavaScripta je komplikovana ukoliko želite da ga ubacite ispravno što je naravno cilj. Recimo hoćete da ubacite popularni JavaScript library jQuery, i u isto vrijeme vas lični specijalni skript
koji će koristiti jQuery. Pošto je jQuery toliko popularan i koristen kao dio skoro svakog plugina pa čak i za administraciju wordpressa, jQuery je dio jezgra prema kome treba da linkujete. To radite ubacivanjem sledeće funkcije u head području vaše functions.php:

<?php wp_enqueue_script(‘jquery’); ?>

Ovaj pristup ima svoje posebne prednosti:

1. Lakoca implementacije. Linkuje ka fajli za koju znate da postoji i za koju znate da će raditi.
2. Obavještava WordPress da je potrebna fajla uspješno lodirana.

Ako odete na web i downloadirate svoju vlastitu kopiju jQuerija, WordPress nema pojma o tome. Onda ako počnete da koristite neki plugin koji je baziran na jQuery WordPress će pokrenuti postojeći jQuery i izazvati katastrofu. Zato ako umjesto toga samo ubacite skript odozgo, plugin će znati da fajla već postoji i neće koristiti duplikat. Problem riješen!

S druge strane, ako koristite svoj vlastiti skript, nema potrebe da ubacujete specijalnu funkciju jer je vaš skript već unikat i nije dio wordpressa. Svoj vlastiti skript loadirate funkcijom:

<script type=”text/javascript”
src=”<?php bloginfo(‘template_url’); ?>/js/mojscript.js”>
</script>

Kao što vidite, i ova funkcija koristi “bloginfo” s tom razlikom što link vodi ka aktivnom direktoriju teme a ne ka specifičnoj fajli.

Sad, pretpostavimo da za arhivu koristite CSS koji nije korišten nigdje drugdje na sajtu kao i specijalan skript samo za arhivu. Za tu priliku se koristi specijalna wordPress logika za otkrivanje da li se vrši pregled arhive i koristi samo tada:

<?php if (is_page_template(‘page-archives.php’)) { ?>
<link rel=”stylesheet” href=”<?php bloginfo(‘template_url’); ?>/css/archives.css” type=”text/css” media=”screen” />
<script type=”text/javascript” src=”<?php bloginfo(‘template_url’); ?>/js/archives.js”></script>
<?php } ?>

Ovo će raditi samo ako se koristi specijalan templet za arhivu imenovan “page-archives.php. Ako znate tačno ID broj te stranice onda ovaj kod može da izgleda ovako:

<?php if (is_page(“5″)) { ?>
<link rel=”stylesheet” href=”<?php bloginfo(‘template_url’); ?>/css/archives.css” type=”text/css” media=”screen” />
<script type=”text/javascript” src=”<?php bloginfo(‘template_url’); ?>/js/archives.js”></script>
<?php } ?>

…gdje je “5″ page ID.

Sve skupa gore opisano će izgledati otprilike ovako:

<?php wp_enqueue_script(‘jquery’); ?>
<?php wp_head(); ?>
<script type=”text/javascript” src=”<?php bloginfo(‘template_url’); ?>/js/myscript.js”></script>
<?php if (is_page(“5″)) { ?>
<link rel=”stylesheet” href=”<?php bloginfo(‘template_url’); ?>/css/archives.css” type=”text/css” media=”screen” />
<script type=”text/javascript” src=”<?php bloginfo(‘template_url’); ?>/js/archives.js”></script>
<?php } ?>

wp_head() Funkcija

Ova funkcija će reci WordPressu “ovo je head”, i na neki način je generalna funkcija koja se koristi kao “hook” ili udica na koju će jezgro WordPressa, plugini i specijalne funkcije da se zakače.

Na primjer, ako imate XML-RPC funkcionalnost na blogu (Settings–>Writing) onda će ta funkcija zahtjevati specijalan link element u head. Ako je dio teme, wp_head funkcija će se koristiti sa strane WordPressa da se XML-RPC element uključi u head.

Slično, kod korišten kao wp_enqueue_script function (vidi gore opisano) on sam za sebe neće imati nikakav efekat osim ako je i wp_head tag takođe postojeći. Koristi se kao hook koji je lokacija gdje će wp_enqueue_script function prikazati skript.

I plugini koriste wp_head funkciju za prikaz vlastitog skripta i CSS fajli. Ponekad plugini ubace inline CSS i JavaScript, što je nepoželjno jer “source code” izgleda neuredno i natrpano.

Pages: 1 2 3

{ 1 comment… read it below or add one }

Caca December 20, 2011 at 6:53 pm

Mnogo ti hvala na nesebicnoj podeli svog znanja sa nama,pocetnik sam u word pressu, i sve sto si napisala mi je vise pomoglo nego kurs koji placam.
Svaka ti cast

Leave a Comment

Previous post:

Next post: