Jeden z podstawowych filtrów w WordPressie używany do zmian wyświetlanego tytułu. Mimo swojej prostoty jest bardzo przyjemnym filtrem, który możemy wykorzystać w wielu miejscach. Na stronach czy wpisach oraz co nie jest takie oczywiste, również do modyfikowania treści menu.
Jest on bardzo prosty i jako parametry wejściowe przyjmuje dwa argumenty: wartość i id obiektu.
Dlaczego piszę „wartość” zamiast tytuł? Otóż dlatego, że ten filtr nakładany jest również na elementy menu, które są również … wpisami, typu nav_menu_item.
Jest to o tyle istotne, że dodając własny filtr za pomocą funkcji add_filter
Przykłady
Data do tytułu
Do każdego tytułu wpisu dodać datę jego publikacji.
class iworks_add_date_to_title { public function __construct() { add_filter('the_title', array( $this, 'the_title' ), 10, 2 ); } public function the_title($title, $post_ID) { if ( is_single($post_ID) ) { return $title . ' - ' . get_the_time('m:h d/m/Y', $post_ID ); } return $title; } } new iworks_add_date_to_title(); |
Prefiks do tytułu
Do każdego tytułu wpisu oznaczonego tagiem WordPress, należy dodać taki prefiks, ale tylko wtedy jak nie ma tego słowa w tym tytule.
class iworks_prefix_title { public function __construct() { add_filter('the_title', array( $this, 'the_title' ), 10, 2 ); } public function the_title($title, $post_ID) { if ( preg_match( '/wordpress/', $title ) ) { return $title; } if ( is_single($post_ID) && has_tag('WordPress', $post_ID) ) { return 'WordPress: '.$title; } return $title; } } new iworks_prefix_title(); |
Podsumowanie
Oczywiście można znaleźć jeszcze wiele zastosowań, takich jak dodawanie obrazka (choć to może zły przykład, bo to powinniśmy załatwić raczej css’ami).
A czy ty stosujesz ten filtr? Jeśli tak, to jak?
bastetmilo
Ostatnio próbowałam wykorzystać ten filtr, żeby dodać do każdego tytułu custom posta link z mailto – oczywiście FAIL, bo nie wiedziałam jak to prawidłowo zrobić i link się dodał _wszędzie_ – czyli właśnie nawet do menu :>.
Dzięki za wpis, będę wiedziała już co poprawić. :*
Sylwia
Przyznam, że nawet nie wiedziała o jego istnieniu. Tytuły w wordpressach modyfikowałam zawsze z poziomu kodu szablonu. Przy czym on z tego co rozumiem, bierze tytuł wpisu wpisany w formularzu dodawania wpisu i na tej podstawie jeśli zostanie spełniony jakiś warunek powiedzmy tak jak piszesz np. określony tag to filtr pozwala wywołać jakiś dopisek w tytule. Mówisz, że prosty. Dla mnie jest nieco skomplikowany. Łatwiej by mi było np. napisać kod php i po ulr tagu wywołać coś, ale to uciążliwe i kolidujące z innymi adresami rozwiązanie. Na czym ogólnie polega idea stosowania filtrów w WP? Przepraszam za może głupie pytania i banalne pytania, ale troszkę tego nie ogarniam.
Marcin Pietrzak
@Sylwia mogę polecić moją prezentację z WordCampa Wrocław: http://iworks.pl/2013/09/28/wordcamp-wroclaw-2013-moja-prezentacja/