Artykuły:

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

    Miniaturki w Wordpress 2.9

    kategoria: CMSy, Webmaster, Wordpress autor: palmiak

    Miniaturki w Wordpress 2.9

    W najnowszej wersji Wordpressa postanowiiono ułatwić życie userom, którzy wpisy okraszają miniaturkami. Niestety z tego co miałem okazję poczytać na wielu stronach funkcja ta sprawia dość sporo problemów. Postaram się w kilku żołnierskich słowach wytłumaczyć jak łatwo doprowadzić to do działania.

    Włączmy to

    Nim zaczniemy zabawę musimy aktywować możliwość wyświetlania ikon wpisu (tak brzmi oficjalne tłumaczenie... zupełnie mi nie leży). Żeby to zrobić wchodzimy do wp-content/themes/nasza_skórka i otwieramy plik functions.php (jeżeli go nie ma należy go utworzyć). Tam dopisujemy

    add_theme_support( 'post-thumbnails' );

    Zapisujemy plik i już - ikony wpisu są włączone.

    Ale gdzie to jest

    Wchodzimy do panelu dodajemy nowy/edytujemy wpis. Trzeba się troszkę rozejrzeć - u mnie box Ikona wpisu pojawił się po prawej stronie na dole. Jeżeli jednak jesteście pewni, że go nie ma wystarczy kliknąć w opcje ekranu i tam zaptaszkować odpowiednie pole:

    Miniaturki w Wordpres 2.9

    Stąd już łatwo. Wystarczy wybrać sobie obrazek, jego rozmiar i dodać jako ikonę wpisu.

    Miniaturki w Wordpres 2.9

    Poprawiamy skórę

    To akurat najprostsza część zabawy. W wybranym miejscu po prostu wywołujemy <?php the_post_thumbnail(); ?>. I tak oto nasz miniaturka powinna pojawić się obok naszego wpisu.

    Fajne prawda? Szczerze mówiąc tak sobie. Teraz czas rozpatrzeć kilka ciekawych scenariuszy dzięki którymś ten ficzer będzie się do czegokolwiek nadawał.

    Chcę miniaturki tylko do wpisów a nie do stron

    Wtedy po prostu zastępujemy

    add_theme_support( 'post-thumbnails' );

    następującym kodem:

    add_theme_support( 'post-thumbnails', array( 'post' ) );

    Jeżeli byśmy mieli ochotę załączyć miniaturki tylko dla stron do post zastępujemy page

    Rozmiary są do bani... chcę inne

    Ależ żaden problem. Wystarczy, że w functions.php dopiszesz:

    set_post_thumbnail_size( 75, 75 );

    Wtedy miniaturki będą miały rozmiar 75x75px. Ok, co prawda jeżeli oryginalny obrazek nie będzie kwadratowy to obrazek zostanie tak zmniejszony, żeby zachował proporcje oraz mieścił się w tych 75x75. Żeby wyciąć fragment wystarczy zamienieć poprzednika na:

    set_post_thumbnail_size( 75, 75, true );

    Wtedy na 100% obrazek będzie miał 75x75px.

    Osobnym problemem jest oczywiście sytuacja gdy chcemy, żeby nasza miniaturka była przygotowana w dwóch rozmiarach - jednym na stronę główną i drugim na pojedynczą. Oczywiście to też jest do zrobienia.

    Najpierw musimy sobie przygotować nowy rozmiar obrazka, żeby WP za każdym razem gdy wgrywa obrazek stworzył też taki jaki chcemy:

    add_image_size('single_post', 500, 100, true);
     

    Znaczy to tyle, że nasza większa miniaturka będzie miała rozmiar 500x100px, będzie przycięta na siłę oraz będziemy ją potem wywoływać poprzez single_post.

    KIedy już mamy nowy rozmiar pozostaje nam umieścić the_post_thumbnail() w odpowiednim miejscu w single.php:

    <?php the_post_thumbnail('single_post'); ?>
     

    Skóra w której użyłem miniaturek wysypuje się w starszych wersjach WP

    Logiczne. Tam w końcu nie było takiej możliwości. Na szczęście jest na to proste rozwiązanie - function_exists() za pomocą której sprawdzimy czy add_theme_support() jest dostępne w naszej wersji.

    Najpierw w functions.php:

    if ( function_exists( 'add_theme_support' ) ){
    add_theme_support( 'post-thumbnails' );
    }

    a następnie w skórze (dodatkowo warto sprawdzić czy wpis ma miniaturkę):

    <?php if ( (function_exists( 'add_theme_support' ))  && ( has_post_thumbnail() )){
    the_post_thumbnail();
    } ?>
     

    A jak miniaturce nadać jakąć klasę?

    <?php the_post_thumbnail('post-thumbnail', array( 'class' => 'nazwa_klasy' )); ?>

    Podsumowanie

    Jak widać pomimo pewnej upierdliwości, miniaturki nie są aż tak straszne. Pewne prawie jest, że w kolejnych wersjach twórcy ułatwią korzystanie z tej funkcji. Tak naprawdę nawet teraz by wystarczyło napisać dość prostą wtyczkę by znacznie ułatwić cały proces.

    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.

    26 Responses to “Miniaturki w Wordpress 2.9”

    1. Paweł mówi:

      Wreszcie ktoś to krok po kroku wytłumaczył! Dzięki.

    2. JaRo mówi:

      Dzięki – właśnie miałem się za to zabierać a tu proszę, podane jak na tacy :D

      • palmiak mówi:

        Ależ proszę. Mam jednak nadzieję, że w kolejnej wersji będzie to można bardziej po ludzku obsługiwać – na obecną chwilę zrobili głównie fajny prezent dla strony z tutkami ;)

    3. Artur mówi:

      Hmm, a może ktoś wie, czy wbudowane miniaturki bardziej obciążają serwer niż timthumb lub php thumb?

      Pozdrawiam,
      Artur

      • palmiak mówi:

        Obrazki są zmniejszane tylko raz przy wgrywaniu, więc ciężko mówić o jakimkolwiek obciążeniu.

        PhpThumb ma katalog cache i przy pierwszy otwieraniu obrazka tworzy sobie przeskalowany obrazek – więc też ciężko mówić o obciążeniu jeżeli obrazki są tylko w cache.

        Samo pokazanie miniaturki to wyrzucenie kawałka tekstu ;)

    4. Paweł mówi:

      Mam pytanko: Jak ustawić domyślą ikonę wpisu? Aby w każdej notce na stronie głównej się wyświetlała, a jeśli jest inna, to ona się pojawi, zamiast tej domyślnej. Z góry wielkie dzięki za jakąkolwiek pomoc!

      • Mówiąc o domyślnej masz na myśli taki myk, że jeżeli nie ma ikony przypisanej to pokaże tą domyślną, tak?

        Jeżeli tak to wystarczy skorzystać z has_post_thumbnail(). Po prostu:

        if(has_post_thumbnail()) {
        post_thumbnail();
        } else {
        // tu operacja która ma być wykonana jeżeli nie ma ikony
        }

    5. Paweł mówi:

      Dzięki za pomoc :) Właśnie to miałem na myśli. Ale jak mam wpisać, aby wyświetliło właśnie domyślny obrazek? Czyli po wpisać w pętli else, bo nie mam pojęcia, jak to zapisać :)

    6. Paweł mówi:

      Dzięki za odpowiedź, ale po dodaniu tego kodu wyskakuje błąd:
      Fatal error: Call to undefined function has_post_thumbnail()

      • palmiak mówi:

        Są dwa wyjścia. Albo masz wp starszego niż 2.9 albo zapomniałeś dopisać add_theme_support( ‘post-thumbnails’ );

        Gorzej jeżeli jest jakieś trzecie wyjście ;)

    7. Paweł mówi:

      Dodałem obsługę ikon wpisów na http://www.gosiunia.pl i mam WP 2.9.1 :) Gdzie problem?

    8. palmiak mówi:

      Chyba mam pomysł. Jeżeli dopisywałeś wszystko metodą ctrl+c ctrl+v to upewnij się czy na pewno cudzysłowy są w porządku. Na zapas popraw je z ręki bo WP lubi zmieniać je na te nieprogramistyczne ;) Mam wrażenie, że masz je złe w add_theme_support.

      Wraz z nową skórą zapomniałem przenieść jednej pierdoły i mogły być właśnie takie byki – teraz w arcie jest już ok.

      • Paweł mówi:

        Dla ikony wpisu daję w functions:
        add_theme_support( 'post-thumbnails', array( 'post' ) );
        set_post_thumbnail_size(258, 90, true);
        if(has_post_thumbnail()) {
        post_thumbnail();
        } else {
        echo '<img src="http://gosiunia.pl/wp-content/themes/GosiuniaWP/images/ikona-wpisu.png" alt="" />';
        }

        A na stronie głównej:
        <?php the_post_thumbnail(); ?>

        I wyskakuje błąd:
        Fatal error: Call to undefined function has_post_thumbnail() in …functions.php on line 116

        Ikony wpisu działają na http://www.gosiunia.pl, tylko nie możemy tych domyślnych ustawić :)

    9. palmiak mówi:

      Dobra – tym razem chyba mam ;)

      To tak:
      w functions.php dajesz tylko:
      add_theme_support( 'post-thumbnails', array( 'post' ) );
      set_post_thumbnail_size(258, 90, true);

      w np. index.php dajesz:
      if(has_post_thumbnail()) {
      the_post_thumbnail();
      } else {
      echo '<img src="http://gosiunia.pl/wp-content/themes/GosiuniaWP/images/ikona-wpisu.png" alt="" />';
      }

      Byka strzeliłem – dałem post_thumbnail zamiast the_post_thumbnail. Sprawdziłem u siebie – działało to.

    10. Paweł mówi:

      Działa :) Wielkie dzięki!

    11. [...] 02/01/2010 Miniaturki w Wordpress 2.9 | Vivee – wordpress, webmastering, grafika i fotografia vivee.info/…12/31/miniaturki-w-wordpr… Pokaż reakcje /* */ inne strony z tej witryny + obserwuj co [...]

    12. A jeśli chcę aby przy wpisie na stronie głównej pojawiał się jakiś obrazek, ale na podstronie wpisu w ogóle go nie było?

      • palmiak mówi:

        Jeżeli dobrze zrozumiałem pytanie to zakładam, ze wystarczy po prostu na single.php nie umieszczać the_post_thumbnail()

        Jeżeli zaś Twoja skóra nie ma single.php to skorzystaj z is_single() i na podstawie tego zrób ifa.

    13. Mariusz mówi:

      wszystko działa ładnie pięknie tylko mam złą pozycje tych miniaturek otoz wyrownuja sie do lewej ale tylko przy pierwszej linijce a nie do calego tekstu

    14. Jarek mówi:

      A ja mam takie pytanko:
      Jak wyrzucić moją ikonę wpisu z galerii wordpressa?

      Dodaję swoją miniaturkę, ale nie chcę żeby pojawiała się też w galerii.

    15. Marcin mówi:

      Zrobiłem to co podane, wybrałem ikonę jednak się nie pojawia w żadnym wpisie. Wywołanie <?php the_post_thumbnail(); ?>. w archive i index nie daje żadnego rezultatu. Gdzie mogę to wywyołać?

    16. Maciek Bielski mówi:

      Nie mogę ustawić klasy, jakaś rada?

    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