Artykuły:

Reklama na blogach - Blogvertising.pl
  • data publikacji: 04.11.2008

    Portfolio graficzne oparte o Wordpress przy użyciu Custom Fields

    kategoria: Wordpress autor: agressiva

    Portfolio graficzne oparte o Wordpress przy użyciu Custom Fields

    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.

    demo pobierz


    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:

    Portfolio Wordpress Theme by Vivee.info

    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> &amp; <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> &amp; <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


    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    - 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 endwhile; ?>
    <div class="navigation">
    <div class="alignleft"><?php next_posts_link('&laquo; Starsze wpisy') ?></div>
    <div class="alignright"><?php previous_posts_link('Nowsze wpisy &raquo;') ?></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() ) { ?> &raquo; 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> &amp; <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('&laquo; Starsze wpisy') ?></div>
                    <div class="alignright"><?php previous_posts_link('Nowsze wpisy &raquo;') ?></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('&laquo; Starsze wpisy') ?></div>
                    <div class="alignright"><?php previous_posts_link('Nowsze wpisy &raquo;') ?></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".

    Portfolio Wordpress Theme by Vivee.info

    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.

    Portfolio Wordpress Theme by Vivee.info

    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=3 liczbę 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 &raquo;</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 pliku functions.php został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:

    Portfolio Wordpress Theme by Vivee.info



    U mnie przykładową zawartością klucza "obrazek1" jest:
    Portfolio Wordpress Theme by Vivee.info
    oraz "obrazek2"
    Portfolio Wordpress Theme by Vivee.info

    Dodatki

    Dla uatrakcyjnienia wyglądu całości została użyta funkcja fadeTo jQuery. 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.

    Udostępnij ten artykuł:
    • Print
    • Digg
    • del.icio.us
    • Facebook
    • Mixx
    • Google Bookmarks
    • Gwar
    • RSS
    • Technorati
    • Twitter
    • Wykop
  • This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

    106 Responses to “Portfolio graficzne oparte o Wordpress przy użyciu Custom Fields”

    1. tutorial blog mówi:

      thank for share

    2. [...] Vivee Free Wordpress Themes | Detail | Demo | [...]

    3. Piotr mówi:

      A mam pytanko czy jest możliwość otrzymania juz przerobionego tego themu tak jak to demo na Pana stronie bo mi nie wychodzi to :( (

    4. Piotr mówi:

      Tzn ja mam tylko problem z tym jak dodać podstronę z opisem danego projektu i tego guzika więcej. Pomógł by mi ktoś ?

    5. Piotr mówi:

      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/

    6. Thanks for share…

      Best Regard

    7. feniks mówi:

      Czy na tym portfolio jest mozliwosc pisania wiadomosci przez panel administratorski czy trzeba pliki edyowac?

    8. [...] 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 [...]

    9. Marcin mówi:

      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ć?

    Leave a Reply

Komentarze

Kategorie

Top 10

  • 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.

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