WordPress: domyślne linkowanie mediów

Dodając obrazek do wpisów w WordPress spotkaliście się z pewną upierdliwością, z którą traktuje on załączane obrazki. Za każdym razem próbuje wstawiać odnośnik do „strony z obrazkiem” zamiast do samego obrazka.

Co ciekawe silnik WordPressa próbuje pobrać domyślną wartość aż z dwóch miejsc.

  1. Z globalnych opcji z klucza o nazwie „image_default_link_type”.
  2. Z ustawień użytkownika z klucza „urlbutton”.

Jeszcze ciekawsze jest to, że nigdzie tych opcji ustawić się nie da.

W załączonym tutaj drobnym snippecie wykorzystałem pierwszą z wymienionych opcji, zawsze ustawiając typ na odnośnik do pliku.

add_action( 'admin_init', 'iworks_image_default_link_type_checker' );
function iworks_image_default_link_type_checker()
{
    if ( get_option( 'image_default_link_type', '' ) != 'file' ) {
        update_option( 'image_default_link_type', 'file' );
    }
}
Opisywana opcja może przyjąć 3 wartości:
  1. file’ – będzie zwracany odnośnik do pliku
  2. post’ – będzie zwracany odnośnik do strony załącznika
  3. cokolwiek, (np. pusty string) – nic nie będzie zwracane.

Jeżeli chcesz umieścić ten kod w swoim WordPressie bez możliwości jej wyłączenia, pobierz oraz rozpakuj go w katalogu wp-content/mu-plugins. Jeżeli chcesz nim zarządzać i mieć możliwość włączania/wyłączania, to w katalogu wp-content/plugins.

[zip title="iWorks default link file" href="http://iworks.pl/wp-content/uploads/2011/11/iworks_image_default_link_type_checker.zip"]iworks_image_default_link_type_checker.zip[/zip]

Oczywiście zamiast 'file’ można wpisać 'post’ lub 'none’.

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

Poprzedni

Zmniejszanie obrazków w WordPress

Następne

Polecana wtyczka: Broken Link Checker

6 komentarzy

  1. U mnie zawsze zapamiętuje ostatni wybór i nigdy nie miałem z tym żadnych problemów (zawsze wstawiam link do pliku).

  2. Maciek Kuś

    @Łukasz – problem pojawia się gdy piszesz nie tylko Ty, a każdemu blogerowi/autorowi musisz o tym wspominać.
    A snippet fajny :)

  3. SpeX

    Dwa pytanie, co daje zmiana linku wpisu na grafikę?

    I czym się różni /mu-pligins/ od /plugins/ ?

    • @SpeX: link wpisu prowadzi do strony z grafiką. (odpwoaida prawdą na warunek is_attachment()). Grafika wiadomo, bezpośrednio do pliku graficznego.

      mu-plugins to to zaszłość z WordPressa MU, którą teraz tłumaczy się jako „must use” czyli wtyczki o wymuszonym włączeniu – nie da się ich wyłączyć, co przy włączonej sieci (tak jak tu) powoduje, że na wszystkich blogach wtyczka jest od razu włączona (bez aktywacji w zarządzaniu siecią czy blogiem). Więcej http://codex.wordpress.org/Must_Use_Plugins

  4. lury

    >Jeszcze ciekawsze jest to, że nigdzie tych opcji ustawić się nie da.

    Marcin masz w poniedziałek -100 za research.
    zapraszam na stronę http://iworks.pl/wp-admin/options.php
    gdzie możesz sobie zmienić wartość dla tej opcji.

    poza tym sama zmiana tej opcji nie rozwiązuje problemu bo jak zauważył Maciek nie jesteśmy jedynymi autorami na blogu i wystarczy że dowolny user podczas edycji fotki kliknie button wstawiający „post url” i mamy problem.

    ergo:
    1. zmienić opcje
    2. ukryć w formularzu edycji obrazka button wstawiający link do posta
    3. nadpisać wszystkim userom to ustawienie w ich opcjach
    4. poprawić linki w wp_postmeta (nie wiem skąd je wziąć ;) )
    5. jakoś naprawić wstawione wcześniej fotki…

    • @lury: Tak, wiem że na podanej stronie są wszystkie opcje w trybie „raw”, ale nie uważam tego ekranu za „normalny”.

Oparte na WordPress & Theme by Anders Norén