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.
- Z globalnych opcji z klucza o nazwie „image_default_link_type”.
- 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:
- ’file’ – będzie zwracany odnośnik do pliku
- ’post’ – będzie zwracany odnośnik do strony załącznika
- 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:
- wrzuć załączony plik do folderu
wp-content/plugins
, a potem włącz wtyczkę - wrzuć załączony plik do folderu
wp-content/mu-plugins
- dołącz kod do pliku
functions.php
aktualnie używanego motywu
Komentarze
6 odpowiedzi na „WordPress: domyślne linkowanie mediów”
U mnie zawsze zapamiętuje ostatni wybór i nigdy nie miałem z tym żadnych problemów (zawsze wstawiam link do pliku).
@Ł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…
@lury: Tak, wiem że na podanej stronie są wszystkie opcje w trybie „raw”, ale nie uważam tego ekranu za „normalny”.