Kategoria: filtr dnia

Zawiera opisy filtrów WordPressa – niektóre z nich są używane rzadko, niektóre często. Wszystkie warte są uwagi.

Filtr dnia: shortcode_atts_{$shortcode}

Jedna z pierwszych rzeczy z WP 3.6, którą już wykorzystuję jest filtr na który już dawno czekałem, bo wzmianki o tym filtrze pojawiły się gdzieś na początku roku.

Ale do rzeczy! Przypomnij sobie kod, który pozwalał na domyślne linkowanie plików galerii w WordPress.

Jak widać główna instrukcja oparta była o wyrażenie regularne i nie jest to konstrukcja elegancka, a dodatkowo może zdublować parametr link.

preg_replace( '/(\[ gallery[^\]]*)\]/', "$1 link=\"file\"]", $content );

Dziś ten sam kod można zrobić po prostu łatwiej:

class iWorks_Default_Gallery_Link {
    public function __construct() {
        add_filter( 'shortcode_atts_gallery', array( $this, 'shortcode_atts_gallery' ), 10, 3 );
    }
    public function shortcode_atts_gallery( $out, $pairs, $atts ) {
        $out['link'] = 'file';
        return $out;
    }
}

Filtr dnia: post_thumbnail_html

Filtr działa na koniec w funkcjach: the_post_thumbnail
get_the_post_thumbnail
pozwalając na modyfikację kodu html ikony wpisu.

Króciutki przykład działania, pozwalający usunąć z treści atrybuty height oraz width

add_filter( 'post_thumbnail_html', iworks_remove_width_and_height, 10, 5 );
function iworks_remove_width_and_height( $html, $post_id, $post_thumbnail_id, $size, $attr )
{
    $html = preg_replace( '/ (width|height)="[^"]+"/', '', $html );
    return $html;
}

Podany kod wystarczy dodać do pliku functions.php używanego motywu.

Filtr dnia: wp_nav_menu_items

Wiele razy zdarzyło mi się przeczytać pytanie jak dodać pole formularza wyszukiwania do dowolnego menu. Odpowiedzi na to pytanie są różne: od typowego „nie da się” po mało eleganckie grzebanie po plikach motywu. A przecież WordPress, dzięki mechanizmowi filtrów i akcji, oferuje nam możliwość modyfikowanie prawie każdego elementu.

W podanym kodzie do menu, które ma nazwę „menu_default” doklejany jest formularz wyszukiwania.

Strona 2 z 2

Oparte na WordPress & Theme by Anders Norén