-
data publikacji: 04.11.2008
Portfolio graficzne oparte o Wordpress przy użyciu Custom Fields
kategoria: Wordpress autor: agressiva
W tym artykule dowiecie się jak w dość prosty sposób zaprojektować portfolio ze swoimi pracami za pomocą wordpressa. Przyda nam się tutaj znajomość custome fieldsów (inaczej pól użytkownika), o których mowa była w jednym z wcześniejszych artykułów palmiaka.
Nie będę tutaj wnikać w wasze gusta graficzne i narzucać jakiegoś ścisłego układu strony. Zauważyłam jednak, że coraz więcej osób stosuję szablon miniatur na stronie głównej (fragmenty grafik odpowiednio przeskalowane) a na podstronach umieszczane są ich powiększenia (często nieco mniejszych rozmiarów niż oryginał ze względu na bezpieczeństwo własnej pracy w internecie). I na podobnych trendach będziemy się teraz opierać.Nasza propozycja skóry do tego portfolio wygląda następująco:
Pierwszą rzeczą jaką należy zrobić po zaprojektowaniu grafiki, to kodowanie, którego szczegółowo opisywać się będę, ponieważ były już na ten temat tutoriale.
Podczas tworzenia tej skóry zapoznacie się również z podstawami template tagów, które budują w dużej mierze wordpressowe skóry i które są niezbędne do prawidłowego wyświetlania elementów strony.Przygotowanie kodu
Pierwszą czynnością jaką zrobimy po zakodowaniu naszego projektu to podzielenie go na części wordpressowej skóry, tj. na
header.php(nagłówek strony),footer.php(stopka strony),page.php(wyświetlanie „strony”).single.php(pojedynczy wpis),sidebar.php(zazwyczaj jest to menu umieszczone na boku strony),index.php(zawartość strony głównej – część pomiędzy header, footerem i sidebarem),archive.php(archiwum wpisów z danej kategorii). Są to najważniejsze części jakie wykorzystane będą do stworzenia tego portfolio.Mój kod strony głównej i zarazem podstrony „portfolio” od strony kodowej wygląda następująco:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Portfolio Theme</title>
<link rel="stylesheet" href="style.css" media="screen"/>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/funkcje_jquery2.js"></script>
</head><body>
<div id="page"><!-- head -->
<div id="head">
<div id="vivee"><a href="#" title="Vivee Portfolio Theme"></a></div>
<div id="menu"><!-- menu górne -->
<ul>
<li><a href="#"><span>Strona główna</span></a></li>
<li><a href="#"><span>O mnie</span></a></li>
<li><a href="#"><span>Portfolio</span></a></li>
<li><a href="#"><span>Oferta</span></a></li>
<li><a href="#"><span>Kontakt</span></a></li>
</ul>
</div>
<div class="end"></div>
</div>
<div id="main"><!-- index -->
<div class="wpis_main"><!-- pojedynczy wpis na stronie głównej -->
<div class="img"><img src="img/praca1.jpg" alt=""/></div>
<div class="tresc">
<h2><a href="">Tytuł pierwszego wpisu w portfolio</a></h2>
<div class="entry">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum massa. Nulla facilisi. Sed auctor elementum mauris. Ut rutrum ipsum eget leo. Proin eget turpis et diam scelerisque sollicitudin.
<h2 class="more"><a href="#">więcej</a></h2>
</div>
</div>
<div class="end"></div>
</div><!-- koniec wpisu -->
</div>
</div><!-- koniec page -->
<div id="footer"><!-- stopka w postaci poziomego pasa z kolumnowymi menu -->
<div id="footer_content">
<div id="komentarze"><!-- ostatnie komentarze na stronie -->
<h2 title="Ostatnie komentarze"></h2>
<ul>
<li><a href="#">Nazwa wpisu</a></li>
<li><a href="#">Nazwa wpisu</a></li>
<li><a href="#">Nazwa wpisu</a></li>
</ul>
</div>
<div id="archiwum"><!-- archiwum wpisów -->
<h2 title="Archiwum"></h2>
<ul>
<li><a href="#">miesiąc</a></li>
<li><a href="#">miesiąc</a></li>
<li><a href="#">miesiąc</a></li>
</ul>
</div>
<div id="przyjaciele"><!-- blogroll -->
<h2 title="Przyjaciele"></h2>
<ul>
<li><a href="#">Przyjaciel 1</a></li>
<li><a href="#">Przyjaciel 1</a></li>
<li><a href="#">Przyjaciel 1</a></li>
</ul>
</div>
<div class="end"></div>
<h2 class="rights">
Portfolio Theme created by <a href="http://vivee.info">Vivee.info</a> & <a href="http://waterdesign.pl">Water Design</a>
</h2>
<h2 title="RSS" class="rss"><a href=""><img src="img/rss.png" alt="RSS"/></a></h2>
<div class="end"></div>
</div>
</div><!-- koniec footer -->
</body>
</html>
Kod dla podstron (szczególnie 'szczegóły dodanych wpisów' z kategorii „portfolio” a także „strony”):
<div id="page"><!-- head -->
<div id="head">
<div id="vivee"><a href="#" title="Vivee Portfolio Theme"></a></div>
<div id="menu"><!-- menu górne -->
<ul>
<li><a href="#"><span>Strona główna</span></a></li>
<li><a href="#"><span>O mnie</span></a></li>
<li><a href="#"><span>Portfolio</span></a></li>
<li><a href="#"><span>Oferta</span></a></li>
<li><a href="#"><span>Kontakt</span></a></li>
</ul>
</div>
<div class="end"></div>
</div>
b) Index.php
<div id="main"><!-- index -->
<div class="wpis_main"><!-- pojedynczy wpis na stronie głównej -->
<div class="img"><img src="img/praca1.jpg" alt=""/></div>
<div class="tresc">
<h2><a href="">Tytuł pierwszego wpisu w portfolio</a></h2>
<div class="entry">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum massa. Nulla facilisi. Sed auctor elementum mauris. Ut rutrum ipsum eget leo. Proin eget turpis et diam scelerisque sollicitudin.
<h2 class="more"><a href="#">więcej</a></h2>
</div>
</div>
<div class="end"></div>
</div><!-- koniec wpisu -->
</div>
</div>
c) Footer.php
<div id="footer"><!-- stopka w postaci poziomego pasa z kolumnowymi menu -->
<div id="footer_content">
<div id="komentarze"><!-- ostatnie komentarze na stronie -->
<h2 title="Ostatnie komentarze"></h2>
<ul>
<li><a href="#">Nazwa wpisu</a></li>
<li><a href="#">Nazwa wpisu</a></li>
<li><a href="#">Nazwa wpisu</a></li>
</ul>
</div>
<div id="archiwum"><!-- archiwum wpisów -->
<h2 title="Archiwum"></h2>
<ul>
<li><a href="#">miesiąc</a></li>
<li><a href="#">miesiąc</a></li>
<li><a href="#">miesiąc</a></li>
</ul>
</div>
<div id="przyjaciele"><!-- blogroll -->
<h2 title="Przyjaciele"></h2>
<ul>
<li><a href="#">Przyjaciel 1</a></li>
<li><a href="#">Przyjaciel 1</a></li>
<li><a href="#">Przyjaciel 1</a></li>
</ul>
</div>
<div class="end"></div>
<h2 class="rights">
Portfolio Theme created by <a href="http://vivee.info">Vivee.info</a> & <a href="http://waterdesign.pl">Water Design</a>
</h2>
<h2 title="RSS" class="rss"><a href=""><img src="img/rss.png" alt="RSS"/></a></h2>
<div class="end"></div>
</div>
</div>
d) Single.php
<div id="sub">
<div class="wpis_sub"><!-- pojedynczy wpis na stronie głównej -->
<div class="tresc">
<h2><a href="">Tytuł pierwszego wpisu w portfolio</a></h2>
<div class="dane">
<p>Kategoria: <a href="#">Webdesign</a></p>
</div>
<div class="img"><img src="img/praca2.jpg" alt=""/></div>
<div class="entry">
Lorem ipsum dolor <strong>sit amet, consectetuer adipiscing elit</strong>. Suspendisse massa. Vivamus ullamcorper. Donec fermentum tristique massa. Quisque pulvinar luctus felis. Aliquam vestibulum aliquet tortor. Aliquam quam. Donec laoreet. Etiam gravida. Donec eleifend eros eget turpis. Nunc consequat rutrum diam. In orci est, pellentesque fermentum, mollis a, commodo quis, sapien. Suspendisse sagittis consectetuer dui. Maecenas eu tellus eget enim venenatis gravida. Cras velit nibh, ultricies quis, aliquet at, rutrum vel, elit. Aenean in leo ut tellus scelerisque dictum. Morbi ornare, est et viverra malesuada, pede enim dictum nulla, eu elementum sem odio non massa. Maecenas nec felis. Quisque enim nunc, ullamcorper et, imperdiet vitae, fermentum vel, ante. Curabitur egestas, diam a tincidunt facilisis, odio nisl viverra ante, nec euismod urna ligula sit amet felis. Fusce condimentum.
</div>
</div>
<div class="end"></div>
</div><!-- koniec wpisu -->
</div>
e) Page.php
<div id="sub">
<div class="wpis_sub"><!-- pojedynczy wpis na stronie głównej -->
<div class="tresc">
<h2><a href="">Tytuł pierwszego wpisu w portfolio</a></h2>
<div class="entry">
Lorem ipsum dolor <strong>sit amet, consectetuer adipiscing elit</strong>. Suspendisse massa. Vivamus ullamcorper. Donec fermentum tristique massa. Quisque pulvinar luctus felis. Aliquam vestibulum aliquet tortor. Aliquam quam. Donec laoreet. Etiam gravida. Donec eleifend eros eget turpis. Nunc consequat rutrum diam. In orci est, pellentesque fermentum, mollis a, commodo quis, sapien. Suspendisse sagittis consectetuer dui. Maecenas eu tellus eget enim venenatis gravida. Cras velit nibh, ultricies quis, aliquet at, rutrum vel, elit. Aenean in leo ut tellus scelerisque dictum. Morbi ornare, est et viverra malesuada, pede enim dictum nulla, eu elementum sem odio non massa. Maecenas nec felis. Quisque enim nunc, ullamcorper et, imperdiet vitae, fermentum vel, ante. Curabitur egestas, diam a tincidunt facilisis, odio nisl viverra ante, nec euismod urna ligula sit amet felis. Fusce condimentum.
</div>
</div>
<div class="end"></div>
</div><!-- koniec wpisu -->
</div>
f) Archive.php
<div id="main"><!-- index -->
<div class="wpis_main"><!-- pojedynczy wpis na stronie głównej -->
<div class="img"><img src="img/praca1.jpg" alt=""/></div>
<div class="tresc">
<h2><a href="">Tytuł pierwszego wpisu w portfolio</a></h2>
<div class="entry">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum massa. Nulla facilisi. Sed auctor elementum mauris. Ut rutrum ipsum eget leo. Proin eget turpis et diam scelerisque sollicitudin.
<h2 class="more"><a href="#">więcej</a></h2>
</div>
</div>
<div class="end"></div>
</div><!-- koniec wpisu -->
</div>
</div>
g) Sidebar.php
<div id="sidebar">
<h2>Portfolio</h2>
<ul>
<li><a href="#">Webdesign</a></li>
<li><a href="#">Webdesign</a></li>
<li><a href="#">Webdesign</a></li>
<li><a href="#">Webdesign</a></li>
<li><a href="#">Webdesign</a></li>
<li><a href="#">Webdesign</a></li>
<li><a href="#">Webdesign</a></li>
</ul>
</div>
W późniejszym etapie zauważycie, że wyżej przedstawione zawartości naszych najważniejszych plików w skórze znacznie się zmienią, po pierwsze przez dodanie w nich Tamplate tagów a po drugie dojdzie kilka niuansów, które wynikają z ogólnego działania WordPressa.
Template Tagi
Są to specyficzne, dla WordPressa, zmienne przypisane do wpisu. Są one o tyle wygodne, że łatwiej jest je zapamiętać niż całą funkcję phpową, są proste i co najważniejsze na oficjalnej stronie WordPress znajdziecie bardzo szczegółową dokumentację i opis każdego z template tagów.
Template Tagi umieszczamy zawsze między lub w znacznikach htmlowych, np
<div class="przyklad"><?php bloginfo('name'); ?></div>Z jakich template tagów tutaj będziemy korzystać?
<?php bloginfo('name'); ?>- decyduje o wyświetlaniu nazwy naszej strony / bloga postawionego na WP<?php echo get_option('home'); ?>- wywołuje adres naszego bloga np. docelowy adres domenowy http://agressiva.poprostuja.pl lub "katalogowy" http://palmiak.p5.dot.pl/wordpressik<?php get_header(); ?>- wyświetla zawartość pliku header.php - bardzo ważny tag, stosowany w rawie każdym pliku skory wordpressowej<?php get_footer(); ?>- wyświetla zawartość pliku footer.php, j/w- jest to loop inaczej pętla, która wyświetla wszystkie opublikowane wpisy oraz strony. Umieszczany jest tuz przed divem w którym znajduje się wpis a zamykany jest za tym samym divem za pomocą przykładowo takiego fragmentu kodu łączącego TT z htmlem
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php endwhile; ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('« Starsze wpisy') ?></div>
<div class="alignright"><?php previous_posts_link('Nowsze wpisy »') ?></div>
<div class="end"></div>
</div>
<?php else : ?><h2 class="center">Not Found</h2>
<p class="center">Sorry, but you are looking for something that isn't here.</p>
<?php include (TEMPLATEPATH . "/searchform.php"); ?>
<?php endif; ?>
<?php the_permalink(); ?>- tag zazwyczaj wrzucany w odnośnik do danego wpisu - powoduje , że po kliknięciu np w tytuł posta na stronie głównej przeniesie nas do jego pełnej wersji.<?php the_title(); ?> - jak sama nazwa wskazuje wyświetla tytuł posta / strony <?php the_content("więcej", the_title('', '', false)); ?>- wstawiony w szkielet wpisu wyświetli nam jego treść jaką wpisujemy zawsze w pole edycji w panelu administracyjnym. Słowo "więcej" oznacza, że kiedy skorzystamy z opcji<!-- more -->, przy wpisie pojawi nam się hasło "więcej" , po kliknięciu na które przeniesiemy się do pełnej wersji wpisu.<?php next_posts_link('« Starsze wpisy') ?>- tag umiejscowiony w htmlu wyświetli nam nawigację między postami. Dzięki temu akurat przejdziemy do starszych wpisów. Ten tag jak i jego odpowiednik<?php previous_posts_link('Nowsze wpisy »') ?>(wyświetlanie nowszych wpisów) działają wtedy kiedy na naszej stronie znajduje się już odpowiednia ilość wpisów, poza tym w panelu administracyjnym (Ustawienia >> Wyświetlanie wpisów) w polu Strony bloga pokazują najwięcej ustawiona jest sensowna liczba wpisów pokazywanych na jednej "stronie". Czyli mając opublikowanych 20 wpisów a na stronach wyświetlanych 5, wtedy nawigacja między stronami z nowszymi i starszymi wpisami zostanie wyświetlona.<?php comments_template(); ?>- pokazuje zawartość pliku comments.php (czyli szablon komentarzy do wpisów)Zaproponowana przez nas skóra nie jest wybitnie skomplikowana pod względem template tagów. Sądzę,że każdy powinien dać sobie z tym radę bez najmniejszych problemów.
Skóra do Wordpress z template tagami
Teraz przejdźmy do konkretów, czyli jak wyglądają pliki skóry po wprowadzeniu do nich wyzej wymienionych template tagów:
a) Header.php - pamiętajcie o tym, aby po włączeniu skóry i skonfigurowaniu wordpressa przez panel admina podać poprawne linki w menu górnym.
<?php wp_head(); ?>- ten tag musi zawsze znaleźć się w pliku header.php między znacznikami<head>i</head>. Duża ilość wtyczek z niej korzysta dorzucając swoje elementy w tym miejscu, więc gdybyśmy tego tagu nie wstawili to okazałoby się, że wiele z nich poprawnie nie działa.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>><head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> » Blog Archive <?php } ?> <?php wp_title(); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<script type="text/javascript" src="<?php echo get_option('home'); ?>/wp-content/themes/vivee_portfolio/js/jquery.js"></script>
<script type="text/javascript" src="<?php echo get_option('home'); ?>/wp-content/themes/vivee_portfolio/js/funkcje_jquery2.js"></script><?php wp_head(); ?>
</head>
<body>
<div id="page">
<div id="head">
<div id="vivee"><a href="<?php echo get_option('home'); ?>/" title="Vivee Portfolio Theme"></a></div>
<div id="menu"><!-- menu górne -->
<ul>
<li><a href="<?php echo get_option('home'); ?>/"><span>Strona główna</span></a></li>
<li><a href="<?php echo get_option('home'); ?>/o-mnie/"><span>O mnie</span></a></li>
<li><a href="<?php echo get_option('home'); ?>/category/portfolio/"><span>Portfolio</span></a></li>
<li><a href="<?php echo get_option('home'); ?>/oferta/"><span>Oferta</span></a></li>
<li><a href="<?php echo get_option('home'); ?>/kontakt/"><span>Kontakt</span></a></li>
</ul>
</div>
<div class="end"></div>
</div>
b) Footer.php
Tutaj podobnie jak w header.php jest tag, który wykorzystywany jest przez wtyczki do WP i musi znaleźć się kodzie:<?php wp_footer(); ?>
Do wyświetlenia ostatnich komentarzy została wykorzystana wtyczka Latest Comments With Avatars Reloaded, aby pokazać 5 ostatnio skomentowanych wpisów należy podać tag przez nią obsługiwany:<?php latest_comments_avatars(5,0,false); ?>. Polecam ta wtyczkę, jest naprawdę bardzo przydatna.<div id="footer"><!-- stopka w postaci poziomego pasa z kolumnowymi menu -->
<div id="footer_content">
<div id="komentarze"><!-- ostatnie komentarze na stronie -->
<h2 title="Ostatnie komentarze"></h2>
<ul>
<?php latest_comments_avatars(5,0,false); ?>
</ul>
</div>
<div id="archiwum"><!-- archiwum wpisów -->
<h2 title="Archiwum"></h2>
<ul>
<?php wp_get_archives('type=monthly'); ?>
</ul>
</div>
<div id="przyjaciele"><!-- blogroll -->
<h2 title="Przyjaciele"></h2>
<ul>
<?php wp_list_bookmarks('title_li=&limit=12&orderby=rand&categorize=0'); ?>
</ul>
</div>
<div class="end"></div>
<h2 class="rights">
Portfolio Theme created by <a href="http://vivee.info">Vivee.info</a> & <a href="http://waterdesign.pl">Water Design</a>
</h2>
<h2 class="rss"><a href="<?php bloginfo('rss2_url'); ?>" title="RSS"></a></h2>
<div class="end"></div>
</div>
</div><!-- koniec footer -->
<?php wp_footer(); ?>
</body>
</html>
c) Index.php
W zaprojektowanej przez nas skórze doskonale widać, że na stronie głównej jak i w dziale Portfolio przy obrazkach głównych jest bardzo mało treści, z tego prostego względu, że na portfolio tego typu zaprezentowanie umiejętności graficznych jest ważniejsze niż rozpisywanie się. Dlatego też jeżeli postanowicie skorzystać z naszego produktu lub sami dzięki temu tutorialowi zaprojektujecie coś podobnego to pamiętajcie, aby w treści dość wysoko wstawić<!--more-->z tego względu, aby później uniknąć za długiej prawej kolumny na stronie głównej – najlepiej aby była ona mniej więcej takiej samej wysokości jak obrazek z boku. Dopiero na podstronie, czyli po kliknięciu na „więcej” przejdziemy do części gdzie bardziej szczegółowo będziemy mogli opisać nasze „graficzne dziecko”.<?php get_header(); ?>
<div id="main">
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="wpis_main"><!-- pojedynczy wpis na stronie głównej -->
<div class="img"><?php custom_field_image("obrazek1");?></div>
<div class="tresc">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<div class="entry">
<?php the_content("więcej", the_title('', '', false)); ?>
</div>
</div>
<div class="end"></div>
</div><!-- koniec wpisu -->
<?php endwhile; ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('« Starsze wpisy') ?></div>
<div class="alignright"><?php previous_posts_link('Nowsze wpisy »') ?></div>
<div class="end"></div>
</div>
<?php else : ?><h2 class="center">Not Found</h2>
<p class="center">Sorry, but you are looking for something that isn't here.</p>
<?php include (TEMPLATEPATH . "/searchform.php"); ?>
<?php endif; ?>
</div>
</div><!-- koniec page -->
<?php get_footer(); ?>
d) Archive.php
Ta część jest w tym przypadku taka sama jak index.php, założenie było takie, że po wybraniu subkategorii w Portfolio pokazują nam się poszczególne wpisy w tych działach w tym samym szablonie. Jeden pod drugim, natomiast szczegóły są dostępne po wybraniu "więcej".<?php get_header(); ?>
<div id="main">
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="wpis_main"><!-- pojedynczy wpis na stronie głównej -->
<div class="img"><?php custom_field_image("obrazek1");?></div>
<div class="tresc">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<div class="entry">
<?php the_content("więcej", the_title('', '', false)); ?>
</div>
</div>
<div class="end"></div>
</div><!-- koniec wpisu -->
<?php endwhile; ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('« Starsze wpisy') ?></div>
<div class="alignright"><?php previous_posts_link('Nowsze wpisy »') ?></div>
<div class="end"></div>
</div>
<?php else : ?><h2 class="center">Not Found</h2>
<p class="center">Sorry, but you are looking for something that isn't here.</p>
<?php include (TEMPLATEPATH . "/searchform.php"); ?>
<?php endif; ?>
</div>
</div><!-- koniec page -->
<?php get_footer(); ?>
e) Single.php
Single.php stanowi pierwszą podstronę inną od pozostałych, na niej zawarte są szczegóły waszego wpisu, dane o kategorii oraz sidebar z prawej strony, w którym wyświetlane są podkategorie kategorii Portfolio - o tym jak w taki sposób wyświetlić subkategorię, za chwilkę w części poświęconej Sidebarowi.<?php get_header(); ?>
<div id="sub">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="navigation">
<div class="alignleft"><?php previous_post_link('%link') ?></div>
<div class="alignright"><?php next_post_link('%link') ?></div>
<div class="end"></div>
</div>
<div class="wpis_sub"><!-- pojedynczy wpis na stronie głównej -->
<div class="tresc">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<div class="dane">
<p>Kategoria: <?php the_category(', ') ?></p>
</div>
<div class="entry">
<?php the_content("więcej", the_title('', '', false)); ?>
<div class="img"><?php custom_field_image("obrazek2");?></div>
</div>
</div>
<div class="end"></div>
</div><!-- koniec wpisu -->
<?php comments_template(); ?>
<?php endwhile; else: ?>
<p>Sorry, no posts matched your criteria.</p>
<?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
f) Sidebar.php
Zawartość sidebara jest dość niewielka w porównaniu do innych plików.
Chodzi w nim o to aby wyświetlić wszystkie stworzone przez nas subkategorie kategorii Portfolio. Jak to zrobić?
Krok 1.
Najpierw należy stworzyć nową kategorię wpisów i nazwać ją "Portfolio".
Następnie tworzymy kolejna kategorię, np "Logotypy" i jako kategorię nadrzędną dajemy "Portfolio".Krok 2.
Teraz należy sprawdzić jakie ID ma kategoria "Portfolio". W tym celu najeżdżamy kursorem myszy na "Portfolio" gdzie tworzyliśmy wszystkie kategorie i z paska statusu odczytujemy numer.Krok 3.
Wywoływanie subkategorii z kategorii o ID 3:
do tego służy nam niżej wykorzystywany tag<?php wp_list_categories('orderby=id&show_count=1&use_desc_for_title=0&child_of=3&title_li='); ?>. Jezeli skorzystacie z tej skóry lub zrobicie własną podobną to pamiętajcie, aby zmienić w tym fragmencie:child_of=3liczbę 3 na taką jaką będzie miała wasza kategoria główna wpisów.<div id="sidebar">
<h2>Portfolio</h2>
<ul>
<?php wp_list_categories('orderby=id&show_count=1&use_desc_for_title=0&child_of=3&title_li='); ?>
</ul>
</div>
<div class="end"></div>
</div>
g) Page.php
"Strona" na naszym portfolio różni się troszkę od single.php, z tego względu, że nie potrzebuje wyświetlania kategorii, daty publikacji ani komentarzy. Zbudowana jest tylko z tytułu i zawartości - treści. Jest to chyba najprostszy szablon w WordPressie.<?php get_header(); ?>
<div id="sub">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="wpis_sub">
<div class="tresc">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<div class="entry">
<?php the_content('<p class="serif">Read the rest of this page »</p>'); ?>
</div>
</div>
<div class="end"></div>
</div><!-- koniec wpisu -->
<?php endwhile; endif; ?>
<?php edit_post_link('edytuj ta strone', '<p>', '</p>'); ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
h) Comments.php
Najgorszy szablon... Na szczęście jest to kopia skóry default lekko przeze mnie przebudowana i ostylowana. Mimo, że na stronie po komentarzach aż tak wiele nie widać, to jednak ich struktura od srodka jest nieco zakręcona i o wiele dłuższa niż wyżej przedstawionych plików. Aby zobaczyć jak to od środka wygląda polecam ściągnąć przygotowaną skórę i tam zobaczyć wnętrze tego pliku, a od zewnątrz możecie zobaczyć na tej stronce.Custom fields
Jak zauważyliście po temacie tego artykułu, będziemy na naszej stronie wykorzystywać Custome Fieldsy, czyli inaczej Pola Użytkownika. Znajdzie coś o nich w jednym z wcześniejszych tutoriali autorstwa palmiaka.
Właściwie już w 3 plikach naszej skóry wordpressowej używana była funkcja własnej roboty oraz div, w którym była wywoływana zawartość.
index.php & archive.php:<div class="img"><?php custom_field_image("obrazek1");?></div>
single.php:
<div class="img"><?php custom_field_image("obrazek2");?></div>
Te template tagi wywołują wrzucane przez usera obrazki przypisywane do poszczególnych wpisów.
Kluczami tych pół użytkownika są "obrazek1" oraz "obrazek2".
W tej wordpressowej skórze z góry ustaliłam, ze obrazek na stronie głównej (obrazek1) oraz na podstronie wpisu (obrazek2) nie będzie szerszy niż 600px, jest to maksymalna szerokość jaką mogą mieć te obrazki.W jaki sposób to wszystko działa?
Otóż w plikufunctions.phpzostała dodana nowa funkcja php:<?php
function custom_field_image($rodzaj){
global $post;
$dir = "http://palmiak.p5.dot.pl/wordpressik/obr/";
$key = get_post_meta($post->ID, $rodzaj, true);
if ($key!=null) {
printf('<img src="%s%s" alt="wstep"/>', $dir, $key);
}
}
?>
gdzie:
- nosi nazwę custom_field_image
- zmienna dir określa lokalizację naszych wgrywanych na serwer obrazów.
Pamiętajcie, żeby ją poprawić na własną i niech to będzie katalog indywidualny w katalogu głównym waszego WordPressa.
- zawartość klucza wyświetlana jest już w postaci<img src="adres_obrazka" alt=""/>
Jeżeli klucz nie jest pusty, to wyświetlana jest jego zawartość. Gdyby nie to sprawdzanie, przy niewypełnionym polu użytkownika przywitałyby nas czerwone krzyżyki.
Najważniejsze co musicie tutaj pamiętać, to to, że obrazek1 pokazywany jest na "stronie głównej" wpisu, a po kliknięciu na "więcej", w podstronie pokazywany mamy obrazek2.W panelu administracyjnym wygląda to tak:
U mnie przykładową zawartością klucza "obrazek1" jest:

oraz "obrazek2"

Dodatki
Dla uatrakcyjnienia wyglądu całości została użyta funkcja
fadeTojQuery. Szczegóły odnośnie tego efektu znajdziecie w tym wpisie.Podsumowanie
Jak zostało Wam wyżej pokazane WordPress nie tylko sprawdza się jako blog, ale również strona o zupełnie innym charakterze. W prosty i szybki sposób możecie stworzyć stronę o dowolnym wyglądzie, skorzystać z prostych udogodnień - custom fields - dzięki którym nie jesteście wyłącznie zależni od ograniczeń wtyczek. Za pomocą pól użytkownika możecie wstawić jaki tylko chcecie element (oczywiście nie tylko obrazek) w dowolne miejsce i w wygodny sposób możecie edytować je przez dobrze znany panel administracyjny.
Mamy nadzieję, ze nasza porada w tej sprawie znajdzie wasze uznanie i zaczniecie z WordPress korzystać nieco szerzej niż do tej pory.
Jeżeli macie jakieś pytania to pytajcie - my odpowiemy najszybciej jak się da.Pobieralnia
Download: Vivee Portfolio Theme (zip)
w paczce znajdziecie:
- folder ze skórą, do umieszczenia w katalogu wp-content/themes/
- wtyczkę, dzięki której wyswietlicie ostatnio skomentowane wpisy - neleży ją wgrać do katalogu wp-cintent/plugins/
- plik psd z logo, które możecie podmienic na własne. Po jego zmidyfikowaniu wystarczy zapisać obrazek jako "logo.jpg"Uwaga: twórcy skóry zwracają się z grzeczną prośbą o nie usuwanie ze stopki paragrafu odnośnie autora Vivee Portfolio Theme!
Nowa wersja Portfolio Theme
W poprzedniej wersji był błąd, który mógł powodować problemy z działaniem panelu administracyjnego.
Zoastał już usuniety i możecie pobrać najnowszą wersję Vivee Portfolio Theme. -
106 Responses to “Portfolio graficzne oparte o Wordpress przy użyciu Custom Fields”
Leave a Reply
Komentarze
Kategorie
Top 10
Stan: Gravatar, czyli jak mieć globalnego avatara
JaRo: Halu!?
Adi: Halu!?
rokicza: Menu akordeonowe z odrobiną CSS3
Marcin Lewandowski: Portfolio graficzne oparte o Wordpress przy użyciu Custom Fields
Agressiva: Portfolio graficzne oparte o Wordpress przy użyciu Custom Fields
Marcin: Portfolio graficzne oparte o Wordpress przy użyciu Custom Fields
rokicza: Menu akordeonowe z odrobiną CSS3
rokicza: Menu akordeonowe z odrobiną CSS3
Gerard: Tutorial na stronę domową
- CMSy Artykuły dotyczące różnego rodzaju systemów zarządzania treścią CMS.
- Flash Podstawowe informacje pomocne przy tworzeniu animacji w Adobe Flash.
- Fotografia Samouczki dotyczące nie tylko robienia zdjęć ale też ich cyfrowej obróbki.
- Grafika Ogólnie pojęta grafika komputerowa, od inspiracji, po tworzenie layoutów oraz mniejszych form graficznych.
- Inne tutoriale wordpressowe Wszystkie inne zagadnienia dotyczące WordPressa.
- Inspiracje Inspirujące materiały graficzne z dziedziny projektowania stron www, projektów DTP, digital painting, itp.
- Obróbka zdjęć Techniki retuszu fotografii cyfrowych.
- Rysunek Tworzenie rysowanych ilustracji w Adobe Photoshop.
- Skóry do Wordpressa Darmowe oraz płatne – najlepsze skóry do WordPressa.
- Skrypty client-side
- Skrypty server-side
- Tutoriale
- Webdesign Tutoriale z zakresu projektowania stron www i grafiki użytkowej na rzecz internetu.
- Wordpress Ulubieniec naszej publiczności CMS WordPress: nowości, tricki, wtyczki, skóry i wszystko to co może przydać się przy korzystaniu z tego systemu.
- Wtyczki do Wordpressa Recenzje oraz instrukcje najbardziej popularnych i najbardziej niezbędnych pluginów do WordPressa.
- XHTML/CSS Ciekawostki z dziedziny kodowania stron www: XHTML, CSS, jQuery.
- Portfolio graficzne oparte o Wordpress przy użyciu Custom Fields
- Menu "wychodzące" zza strony
- Sklep internetowy wyróżniający się z tłumu
- Animowane menu za pomocą funkcji jQuery - animate() cz.2
- 9 grzechów głównych młodego webdesignera
- Tagi w trójwymiarze
- Gravatar, czyli jak mieć globalnego avatara
- Inspirujące szablony stron (DeviantArt) - październik 2008
- ExpressionEngine - pierwsze starcie
- Inspirujące strony www - październik 2008
Najnowsze newsy
Zapraszamy na forum graficzne Graffika.pl
Każda osoba interesująca się grafiką komputerową ma czasami ochotę porozmawiać o swoich pracach, posłuchać rad, krytyki i pochwał innych osób. Idealnym miejscem na realizowanie takich potrzeb jest forum graficzne Graffika.pl.
Czytaj dalej
Przypominamy o Konkursie Noworocznym
Wraz z nowym, 2010 rokiem ogłosiliśmy konkurs na tutorial o tematyce CMS-owej.
Mamy nadzieję, że jakieś prace zostaną nadesłane do końca terminu i znajdzie się zwycięzca w pierwszym naszym oficjalnym konkursie z nagrodami.
Zachęcamy wszystkich do spróbowania swoich sił.
Szczegóły dostępne są pod tym adresem: http://vivee.info/2010/01/01/konkurs-noworoczny/
Zareklamuj nas :)
Jako, że pojawiła się na vivee.info nowa skóra przygotowałam nasze firmowe banerki reklamowe. Osoby, które wyrażą chęć wsparcia nas reklamą u siebie na blogach lub innych serwisach mogą pobrać je poniżej. Czytaj dalej
Polecane strony
- WordPress Theme from Scratch – Day 1: PSD
- 20 Tutorials For Creating HDR Images
- Ask the Expert – Using Wordpress to Build Large Scale Websites with Derek Herman
- Making an Interactive Picture with jQuery
- Create a Horizontal Scrolling Website
- 800 Most Wanted Free RSS Icons for Bloggers
- 45 Most Wanted Beautiful Free Hand Drawn Fonts
- Caffe-Break Themed Blog Layout Photoshop Tutorial
- Create a nature inspired layout in photoshop
- Coding a Web Design for Speed and Quality
- Beautiful Hand Drawn Websites | Abduzeedo | Graphic Design Inspiration and Photoshop Tutorials
- 40 Fresh Creative and Inspiring Photographs
- Wordpress portfolio layout | Grafpedia
- Simple Facial Photo Retouching | Grafpedia
- Create a beauty layout in 10 steps | Grafpedia





























[...] Vivee [...]
[...] Vivee [...]
[...] Vivee [...]
Vivee…
¡…
thank for share
[...] Página de Download [...]
[...] Vivee Free Wordpress Themes | Detail | Demo | [...]
[...] Vivee [...]
[...] دمو دانلود [...]
[...] Vivee [...]
[...] Vivee [...]
[...] Demo Source [...]
[...] http://palmiak.p5.dot.pl/wordp…Details: http://vivee.info/2008/11/04/p…Click to [...]
A mam pytanko czy jest możliwość otrzymania juz przerobionego tego themu tak jak to demo na Pana stronie bo mi nie wychodzi to
(
Tzn ja mam tylko problem z tym jak dodać podstronę z opisem danego projektu i tego guzika więcej. Pomógł by mi ktoś ?
Ja już skojarzyłem mniej więcej jak grafikę dodawać i zostało mi tylko dodawanie tych podstron z wiekszym obrazkiem. http://www.grudziadz-cs.pl/portfolio/
[...] 3. Vivee [...]
[...] Vivee [...]
[...] Site officiel : Vivee [...]
[...] Site officiel : Vivee [...]
[...] Vivee [...]
[...] Demo | Get it [...]
[...] دمو دانلود [...]
[...] 22. Vivee Wordpress Theme [...]
[...] 22. Vivee Wordpress Theme [...]
[...] 22. Vivee Wordpress Theme [...]
Thanks for share…
Best Regard
[...] 22. Vivee Wordpress Theme [...]
[...] 22. Vivee Wordpress Theme [...]
[...] Vivee Portfolio Theme (demo) (download) [...]
[...] Vivee [...]
Czy na tym portfolio jest mozliwosc pisania wiadomosci przez panel administratorski czy trzeba pliki edyowac?
[...] 2. Vivee [demo] [download] [...]
[...] 22. Vivee WordPress Theme [...]
[...] Free, WordPressTags: 2 Columns, Gray, Professional, Tan, WhiteTheme Rating:Description & Features:Vivee is a clean, professional template built for portfolio sites running WordPress.Demo This [...]
[...] Site Officiel [...]
[...] 22. Vivee Wordpress Theme [...]
[...] 22. Vivee Wordpress Theme [...]
[...] Vivee Portfolio Theme [...]
[...] View Demo | Download [...]
Witam,
mam pytanie (nie jestem zaawansowanym koderem php/wordpress) – jak użyć funkcji Custom Fields w swojej skórce? Jakie pliki edytować / w jaki sposób je edytować?