Kategorie
Snippet WordPress

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 na “WordPress: domyślne linkowanie mediów”

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

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

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

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