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.
[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:
- 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
Łukasz Więcek
U mnie zawsze zapamiętuje ostatni wybór i nigdy nie miałem z tym żadnych problemów (zawsze wstawiam link do pliku).
Maciek Kuś
@Łukasz – problem pojawia się gdy piszesz nie tylko Ty, a każdemu blogerowi/autorowi musisz o tym wspominać.
A snippet fajny :)
SpeX
Dwa pytanie, co daje zmiana linku wpisu na grafikę?
I czym się różni /mu-pligins/ od /plugins/ ?
Marcin
@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
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…
Marcin
@lury: Tak, wiem że na podanej stronie są wszystkie opcje w trybie „raw”, ale nie uważam tego ekranu za „normalny”.