Artykuły:

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

    Wordpress Shortcode API

    kategoria: Inne tutoriale wordpressowe, Wordpress autor: palmiak

    Wordpress Shortcode API

    Czasem zdarza się, że pisząc wpis chcielibyśmy wywołaś jakiś kod PHP. No niby da się - są do tego wtyczki, jednak miło by było gdyby była jakaś prostsza metoda. W WP 2.5 na szczęście się taka pojawiała, chodzi o tytułowe Shortcode API. W tym artykule postaram się pokazać Wam jak z tego korzystać.

    Dzięki Shortcode API możemy wywoływać funkcje PHP w następujące sposoby:

    • [moja_funkcja]
    • [moja_funkcja argument1="4" argument2="maciek"]
    • [moja_funkcja]Jakaś treść[/moja_funkcja]
    • [moja_funkcja argument1="4" argument2="maciek"]Jakaś treść[/moja_funkcja]

    W dalszej części artykułu przedstawię po jednym przykładzie użycia każdego wariantu. Jednak już teraz widać, że jest to naprawdę miłe i potężne narzędzie. Nie dość, że pozwoli nam wywołac PHP to jeszcze możemy odpowiednią listę argumentów.

    Pojedynczo i bez argumentów

    Nasza pierwsza funkcja nie będzie zbyt twórcza - jedyne co będzie robić to wypisywać fragment "Lorem ipsum". Do testowania w sam raz.

    Żeby to zrobić otwieramy (lub tworzymy jeśli nie ma) plik functions.php w katalogu z naszą skórką. Następnie piszemy tam:

    <?php
    function lipsum() {
       return 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur tempus laoreet tellus. Nam fermentum. Fusce lobortis purus nec risus. Aliquam risus purus, rhoncus ut, vulputate vel, venenatis sed, enim.';
    }
    add_shortcode('lorem', 'lipsum');
    ?>

    Jedyne co może ciekawić w tym wszystkim to add_shortcode('lorem', 'lipsum');. Dzięki tej funkcji sygnalizujemy, że poprzez napisanie [lorem] we wpisie wywołujemy funkcję lipsum.

    Pojedynczo, ale solidnie uargumentowane

    Kolejną możliwością jest [lorem_v2 ilosc="20"]. Będzie to rozszerzona wersja poprzedniej funkcji o możliwość podania ile razy tekst ma się powtórzyć.

    Tym oto sposobem nasz funkcja będzie wyglądać:

    function lorem_with_count($atts) {
            extract(shortcode_atts(array(
                    'count' => 5
            ), $atts));

    for($i=0; $i<$count;$i++) {
    echo 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur tempus laoreet tellus. Nam fermentum. Fusce lobortis purus nec risus. Aliquam risus purus, rhoncus ut, vulputate vel, venenatis sed, enim.';
    }
    }
    add_shortcode('lorem_v2', 'lorem_with_count');
     

    Jest to funkcja z cyklu prostackich wręcz, jednak dobrze ilustruje jak używać tego typu shorttagów. Wszystkie argumenty z tagu (w naszym przypadku count="20") przypisywane są do tablicy $atts. Za pomocą funkcji extract, poza przypisaniem zawartości tablicy do zmiennych, możemy ustalić wartości defaultowe (w naszym przypadku count => 5).

    Na końcu pozostaje już tylko wykonanie pętli tyle razy ile podaliśmy w count (lub 5 razy, jeśli argument pomineliśmy).

    Prawie jak bbcode

    Na końcu zrobimy sobie coś a'la bbcode, czyli [b]jakiś tekst[/b] będzie pogrobiony, a [i]inny tekst[/i] będzie pochylony.

    function convert_to_strong($content='') {
            echo '<strong>'.$content.'</strong>';
    }

    function convert_to_em($content='') {
            echo '<em>'.$content.'</em>';
    }
    add_shortcode('b', 'convert_to_strong');
    add_shortcode('i', 'convert_to_em');
     

    Jak widać po przykładach to co jest pomiędzy naszymi kwadratowymi tagami to po prostu zmienna $content.

    Podsumowanie

    I tak oto wygląda Shorttag API. Dość kiepsko promowany ficzer Wordpressa (przegrał walkę z ówczesnym nowym interfejsem). A naprawdę szkoda, bo dzięki niemu może sobie (oraz naszym klientom) bardzo ułatwić pracę. O wiele łatwiej jest tłumaczyć, zeby napisał [tytul]jakiś tytuł[/tytul] niż tłumaczyć którego h ma użyć (a i tak użyje złego). Dodatkowo pozwala w dość prosty sposób osadzać w treści wiele rzeczy (np. mapkę googlową po podaniu tylko wysokości i szerokości geograficznej [gmap dl=x szer=y]).

    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.

    18 Responses to “Wordpress Shortcode API”

    1. SpeX mówi:

      Czy jak sam ostatni przykład pożyczę i go rozbuduję to będę mógł uzyskać pełne BBCode w komentarzach?

      • palmiak mówi:

        Będę niczym radio Erewań. Tak, możesz, ale… shortcode API jest skierowny defaultowo tylko dla the_content. Jeżeli chcesz, żeby w komentarzach działało musisz dopisać jeszcze add_filter(‘comment_text’, ‘do_shortcode’);

    2. konradk mówi:

      nie wiesz czy dziala to tez w widgetach? np dodaje widget typu text/html i tam w tresci wpisuje shortcode

    3. palmiak mówi:

      Tak jak poprzednio add_filter(‘widget_text’, ‘do_shortcode’);

    4. SpeX mówi:

      A jak wyłączyć filtr z głównej treści? Bo chcę by BBCode było tylko w komentarzach.

      filtry dodaję w functions.php ??

    5. sory za kolejne dopytywanie: w ktorym konkretnie pliku dopisuje te add_ remove_ ? functions.php? czyw pliku skorki np index.php?

    6. palmiak mówi:

      functions.php

    7. SpeX mówi:

      Skąd system wie kiedy wstawię
      add_filter(‘comment_text’, ‘do_shortcode’);
      remove_filter(‘the_content’, ‘do_shortcode’);
      na jakieś shortcode ma założyć/zdjąć filtr?

      Co jest lepszym rozwiązaniem BBCode jako shortcode w szablonie czy jako plugin?

    8. MajareQ mówi:

      Pierwszy pytanie – bo włącza/wyłącza wszystkie shortcode dla danej sekcji.
      Drugie pytanie – tam gdzie nakład pracy jest najmniejszy ,czyli API Shortcode.

    9. palmiak mówi:

      A poza tym prawdopodobnie plugin i tak będzie oparty o shortcode, więc co za róznica ;)

    10. SpeX mówi:

      To że zrobię sam :P

    11. lisek mówi:

      może być też oparty na wyrażeniach regularnych, tak mi się zdaje

    12. SpeX mówi:

      A da się to gdzieś umieścić wyżej niż szablon, tak by działało niezależnie od wybranego szablonu?

    13. konradk mówi:

      Czy da się jakoś sprawić by wstawiony na stronie shortcode nie był przetwarzany? Bo właśnie miałem problem: na stronie działa stworzony przeze mnie plugin i na stronie mam opis jak on działa, że trzeba wstawić shortcode. Tyle, że jak w opisie podaje jak ten shortcode wygląda, to WP oczywiście zamiast niego pokazuje mi wynik jego działania :) Na razie zastąpiłem go obrazkiem/zrzutem ekranu ale jak zrobić by go wstawić bez takich obejść?
      problematyczna strona jest tutaj:
      http://www.muzungu.pl/moje-pluginy-do-wordpressa/

    14. palmiak mówi:

      Użyj encji (tylko bez spacji) & #91; oraz & #93; i będzie cacy.

    15. [...] Wordpress Shortcode API autorstwa Maćka Palmowskiego (PL). [...]

    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