Filtr dnia: sanitize_file_name – czyli nazwy plików bez znaków specjalnych

Bardzo często przy migracji witryny występuje problem z nazwami plików, a dokładniej z kodowaniem polskich znaków diakrytycznych. Jeżeli szukasz jak masowo zamienić już istniejące pliki, to muszę cię rozczarować, ten wpis nie jest o tym. Ten wpis jest o tym, jak nie dopuścić do takiej sytuacji, czyli zgodnie z zasadą, że lepiej jest zapobiegać, niż leczyć.

Dla mnie, ten kawałek kodu jest czymś co zawsze instaluje na wszystkich WordPressach, w których mam prawo to zrobić. Czytaj dalej Filtr dnia: sanitize_file_name – czyli nazwy plików bez znaków specjalnych

Filtr dnia: get_the_date

Calendar - © Dafne Cholet 2011-01-20

Na jednej z grup na FB Artur opisał następujący problem:

Mam na swoim blogu szablon i wszystko byłoby w porządku gdyby nie problem z datą – wyświetla mi ją jako MM.DD.RRRR, a chciałbym by pokazywało ją po naszemu. W opcjach mam ustawione wyświetlanie daty na „3 listopada 2015”.

Szybka analiza motywu ujawniła, że na format daty, podany jest na sztywno w jednym z plików motywu w taki sposób: get_the_date('m.d.Y');. Dokładne sprawdzenie wykluczyło możliwość stworzenia w prosty sposób motywu potomnego, bo zaciąganie pliku nie jest zrobione w zalecany dla motywu potomnego sposób. Co można zrobić w takiej sytuacji?

Filtr dnia: upload_mimes

Dzisiejszy filtr pozwala na zmianę listy dopuszczonych typów plików, jakie można dodać do mediów. Jest jeden kruczek. Jeżeli WordPress, którego używasz pracuje w trybie pojedynczej witryny, a popełniasz ten błąd, że publikujesz z konta administratora, to opisywany problem i jego rozwiązanie ciebie nie dotyczy. Zwyczajnie go nie zauważysz, bo WP nie ma, a tym bardziej konto administratora nie ma ograniczeń w dodawaniu plików.

Jeżeli natomiast choć raz widziałaś lub widziałeś komunikat:

Przepraszamy, wysyłanie plików tego typu nie jest dozwolone z powodów związanych z bezpieczeństwem.

A nadal potrzebujesz dodać plik takiego typu, to…

Przeczytaj jak dodać „zakazane” typy plików

Filtr dnia: style_loader_src – czyli zawsze* polskie znaki

zażółć gęślą jaźń

Jak bumerang wraca temat polskich znaków w Google Fonts i tego że ich nie widać.

Gwiazdka w tytule oznacza pewne założenie. Otóż tym założeniem jest to, że dany krój pisma posiada polskie znaki diakrytyczne.

Jak dany krój nie posiada, to i tak nic nie pomoże.

Aby czcionka mogła wyświetlać musi być załadowany odpowiedni zestaw znaków, ten zestaw dla Polski nazywa się latin-ext.
Czytaj dalej Filtr dnia: style_loader_src – czyli zawsze* polskie znaki

Filtr dnia: widget_tag_cloud_args

Jednym z domyślnych widgetów, jakie oferuje WordPress jest taki, który pozwala wyświetlić chmurę tagów.

Domyślnie jest wyświetlane 45 tagów, co nie każdemu może odpowiadać.

Do zmiany liczby wyświetlanych tagów należy użyć filtra widget_tag_cloud_args tak, żeby zmienić argument number w funkcji wp_tag_cloud.

W najprostszej wersji możemy użyć takiego kodu: Czytaj dalej Filtr dnia: widget_tag_cloud_args

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. Czytaj dalej Filtr dnia: the_title

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.

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.