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;
    }
}

Poprawka! Można by, ale jest drobniutki błąd w 3.6. Shortcode gallery nie pozwala na zmianę atrybutu link. Więc zgłosiłem błąd: #24979.

Jeżeli więc, chcesz użyć „nowego” kodu, to wcześniej musisz dodać patch z powyższego ticketa.