Miskolci Városi Könyvtár és Információs Központ > http://www.mclib.hu Ennek az oldalnak vagyok szülőatyja és webmestere (amikor dolgozom).
Wordpress motorral, egyedi, saját készítésű sablonnal. A külcsínről direkt nem írnék, az intézmény arculati kézikönyve év végére lesz kész (elméletileg), akkor majd mehet rá a makeup.
Viszont kód-szinten van benne két megoldás, amit megosztanék, hátha valakinek hasznos lesz.
- A főoldali Kiemelt programok doboz nem a standard ASC vagy DESC order alapján épül fel, hanem custom field-ből veszi a rendezés forrását. Egy programajánló írásakor a poszthoz meg lehet adni egy “Date” cusom field-et, YYYY/MM/DD ÓÓ/PP/MP formátumban (Y/m/d H:i:s), a loop pedig a következőképp néz ki:
$todaysDate = date('Y/m/d H:i:s');
?>
<?php $my_query = new WP_Query('category_name=programok&showposts=1&meta_key=Date&meta_compare=>=&meta_value=' . $todaysDate . '&orderby=meta_value&order=ASC');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;?>
// Kiemelt loop tartalma
<?php endwhile; ?>
<?php $my_query = new WP_Query('category_name=programok&showposts=4&offset=1&meta_key=Date&meta_compare=>=&meta_value=' . $todaysDate . '&orderby=meta_value&order=ASC');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;?>
// Csak címeket megjelenítő loop tartalma
<?php endwhile; ?>
Azaz a custom field-ben megadott Date (értelemszerűen a rendezvény dátuma és ideje) alapján rendez, ASC orderben (vagyis mindig a legaktuálisabb van legfelül). A szerveridővel összevetve pedig ha a rendezvény már elmúlt, akkor a loop egyszerűen átugorja. A második loop offset=1 változója segít elkerülni a duplikált megjelenítést.
(Forrás)
2. A másik az excerpt-ek mellett megjelenő képekkel van kapcsolatban. Annyit szívtam már életemben a timthumbbal és társaival, hogy valami más megoldás kellett, ami működik feltöltött és csak hivatkozott képekkel is, lehetőleg custom field nélkül. A functions.php-ban szerepel egy ilyen:
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('//i', $post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //Defines a default image
$first_img = "";
}
return $first_img;
}
Ez automatikusan kiemeli a postban szereplő első képfájl url-jét, legyen az saját, vagy távoli szerveren. A loopon belül az alábbi rész húzza be az excerpt fölé/mellé:
Ezt aztán egy divbe rakva vagy classt rendelve hozzá lehet CSS-ben formázni (alignment, max-width stb.).
(Forrás)
Ahogy látható, az ötletek nem az enyémek, csak a szükséges módosításokat írtam a kódokba. Azért linkeltem, ismertettem őket, hogy ha valakinek hasznosak, ne járjon úgy, mint én, hogy hetekig keresi... :D