Kategorie
Snippet WordPress

Domyślne linkowanie plików galerii w WordPress

Bardzo krótko i bardzo szybko. Kod powoduje, że galerie linkują do pliku graficznego, a nie do strony załącznika. Jest odpowiedzią na pytanie zadane na twarzoksiążce.

class iWorks_Default_Gallery_Link
{
    public function __construct()
    {
        add_filter( 'the_content', array( &$this, 'the_content' ), 1 );
    }
 
    public function the_content( $content )
    {
        return preg_replace( '/(\[ gallery[^\]]*)\]/', "$1 link=\"file\"]", $content );
    }
 
}
new iWorks_Default_Gallery_Link();

Uwaga w kodzie na stronie jest błąd w preg_replace, bo w tym miejscu pojawiała się galeria :D Jeżeli kopiujesz powyższy kod, usuń spację między [ a słowem gallery.

pobierz plik: iworks-gallery-default-file.php-.zip

Jak użyć podany kod?

Masz 3 rozwiązania:

  1. wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
  2. wrzuć załączony plik do folderu wp-content/mu-plugins
  3. dołącz kod do pliku functions.php aktualnie używanego motywu

10 odpowiedzi na “Domyślne linkowanie plików galerii w WordPress”

A jest jakiś kod, którym dałoby się w ogóle wyłączyć możliwość linkowania do strony załącznika?

Przeglądając nowy domyślny szablon to w wersji 3.6 powinien pojawić się filtr do galerii gdzie będzie można ustawić poszczególne wartości shortcode_atts_gallery.

Sposób prosty i skuteczny.
Ja robię nieco inaczej, koryguję szorty już/tylko na etapie zapisu (ale można i puścić filtrem na the_content) i nie ruszam tych ze zdefiniowanym linkowaniem (wszak czasem po prostu w którymś miejscu chcę odesłać do strony załącznika).
http://pastebin.com/2exgibTj – skrobnięte kiedyś po piwku na szybko, ale ważne że działa.

@Anoriell, ale co konkretnie masz na myśli?
-kod podany przez Marcina wymusi na wszystkich galeriach linkowanie do załącznika – nawet tam gdzie ustawione jest linkowanie do strony załącznika.
Jednakże same URLe stron załączników będą działały – jeżeli chcesz to zmienić, to możesz utworzyć w motywie plik image.php a w nim zwrócić bład 404 http://pastebin.com/GGzW4FjZ , przekierować na stronę wpisu http://pastebin.com/a5457s32 lub do pliku załącznika http://pastebin.com/aKjnU4UZ

@Paweł: Chodzi mi o to, żeby przy wstawianiu galerii lub po prostu obrazka do wpisu na liście wyboru w ogóle nie było opcji: „Strona załącznika”. Niejednokrotnie w przypadku pracy z klientami bardzo dużym ułatwianiem sobie życia jest stosowanie się do starego powiedzenia: „Czego oczy nie widzą, tego…”, no wiesz ;)

@Marcin, naprawili …tak jakby ;p
Nie ma już problemu z ustawianiem niewłaściwego typu na defaulcie – ot przywrócili na pierwszej pozycji listy linkowanie do strony załącznika.
Natomiast same szorty działają jak działały tj. bez parametru link=”file” linkuje domyślnie do strony załącznika.
-czyli nadal jeżeli ktoś chce to zmienić, trzeba „kombinować” po naszemu. :)

@anoriell, rozumiem. Da się. Można kombinować JS lub CSS’em -chociaż mnie się to jakoś nie udało w sposób zadowalający.
Jeżeli ktoś sobie z tym skutecznie poradził, może podzieli się działającym sposobem.
Za to udało mi się coś takiego zrobić przez podczepienie zmodyfikowanego szablonu mediów – wyszło przy tym kilka ciekawostek. :)

Możliwość komentowania jest wyłączona.