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.

pobierz plik: iworks_image_default_link_type_checker.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

6 odpowiedzi do “WordPress: domyślne linkowanie mediów”

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

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

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

    1. @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

  3. >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…

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

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

Jeżeli chcesz skomentować, napisz mail na adres marcin w domenie strony na której jesteś. Dodam twoj komentarz.