Filtr dnia: the_title

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_filteradd_filter, musimy jawnie podać liczbę przyjmowanych argumentów, no chyba że obsługujemy całość niezależnie od tego co to jest.

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?

Poprzedni

WordPress 3.8.1 – poprawki i utrzymanie

Następne

WordUp Warszawa – kwiecień 2014

3 komentarze

  1. 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ć. :*

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

Oparte na WordPress & Theme by Anders Norén