Tworzę witrynę baseballową z wieloma autorami. Z przeszłych doświadczeń, bez względu na to, jak dobrze znasz kogoś osobiście, nie oznacza to, że będą postępować, a nawet czytać twoje instrukcje.
Biorąc to pod uwagę, chciałbym wymagać, aby każdy obraz, który Autor zdecyduje się na „Użyj jako wyróżnionego obrazu”, miał co najmniej 640 pikseli szerokości i co najmniej 360 pikseli wysokości.
Wymagałem, aby każdy post miał wyróżniony obraz przy użyciu wtyczki WyPiekacz ; post nie zostanie opublikowany bez wyróżnionego obrazu. Zablokowałem autorowi możliwość tworzenia linku do innej witryny, usuwając kartę „Z adresu URL” w Dodaj media za pomocą kodu Bainternet.
Teraz muszę wymagać, aby każdy obraz użyty jako wyróżniony obraz miał co najmniej 640 na 360 pikseli. Nie jestem koderem, ale bawiłem się i próbowałem użyć kodu Maora Barazany'ego jako punktu wyjścia, ale bezskutecznie. Jego kod wymusza minimalne wymiary każdego przesyłanego obrazu .
źródło
Odpowiedzi:
cóż, jeśli używasz wtyczki WyPiekacz; jak już powiedziałeś, aby sprawdzić, czy polecany obraz jest przesłany, możesz go trochę ulepszyć, aby sprawdzić, czy jeśli polecany obraz ma minimalne wymiary, zgodnie z wymaganiami.
Możesz zmienić powyższy kod w wypiekacz.php na,
cóż, nie rozumiem, co masz na myśli przez „Media Library Tab”.
źródło
list($url, $width, $height) = wp_get_attachment_image_src($post_id, 'full');
zmieniono, abylist($url, $width, $height) = wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), "Full"); echo $imgsrc[0];
sprawdzić wymiary tylko wyróżnionego obrazu, a nie wszystkich dołączonych obrazów.Sprawdziłem rdzeń i najwyraźniej jest niewiele miejsca na manewrowanie.
/wp-admin/include/media.php to miejsce, w którym generowane są zakładki Dodaj media
Funkcja get_media_item w linii 1034 to ta, która renderuje tabelę załączników / multimediów. Nie widzę w nim żadnego filtra ani poprzednich funkcji, które go wywołują.
Niektóre referencje i przykłady kodu dotyczące tego problemu.
Wydaje mi się, że alternatywnym rozwiązaniem byłoby zmienić tytuł przesłanych zdjęć i dołączyć ich wymiary. Nie jestem pewien co do zmiany post_title przesłanego pliku, ale zmianę nazwy samego pliku można uzyskać za pomocą tych dwóch filtrów: sanitize_file_name i wp_handle_upload_prefilter
źródło
Nie jest to pełna odpowiedź i nie nagroda, tylko dowód na to, że podstawowa koncepcja działa:
Tylko 60-sekundowy fragment kodu i ma jeden duży problem: będzie uruchamiany przy każdym przesyłaniu, i to nie tylko wtedy, gdy ktoś będzie chciał dodać wyróżniony obraz, ponieważ nie mamy sposobu na uzyskanie kontekstu przesyłającego obraz. Istnieje kilka sposobów obejścia tego, w zasadzie za pomocą manipulacji js.
Powinienem teraz pracować i nie mam czasu na eksperymentowanie z tym. Ale chciałem pomóc, jak mogłem, i może to jest punkt wyjścia dla innych.
Twoje zdrowie
źródło
To nie jest najbardziej elegancka odpowiedź ... ale działa! Wtyczka „WyPiekacz”, choć fajna, nie była aktualizowana od trzech lat.
Najbardziej eleganckie rozwiązanie z najlepszym doświadczeniem użytkownika wykorzystałoby JavaScript do obsługi tego zarówno w przypadku Szybkiej edycji, jak i strony edycji postów. Potem na szczęście dodam coś do
update_post_metadata
filtra (co całkowicie działa na rzecz zapobiegania polecanemu obrazowi, ale nie daje ostrzeżenia, ponieważ działa z AJAX).Powiadomienia administratora nie pojawią się, ponieważ WordPress przekierowuje, a nawet wtedy nie pojawiłby się w Szybkiej Edycji (moja metoda wyświetla ostrzeżenie w Szybkiej Edycji, chociaż nie jest stylizowana).
źródło
Oto jeden ze sposobów upewnienia się, że przed wyświetleniem jest odpowiednia miniatura.
Najpierw utwórz tę funkcję pomocnika:
Następnie możesz teraz sprawdzić przed wyświetleniem miniatury postu:
źródło
To zrobi, czego potrzebujesz :)
Korzysta z get_the_post_thumbnail, który może ci również pomóc, więc nie musiałeś tworzyć zestawu kodu fn, który WordPress może już dla ciebie obsłużyć, tylko myśl.
Służy
$thumbnails = get_posts(array('numberposts'=>1,'orderby'=>'rand','meta_key' => '_thumbnail_id'));
do przechwytywania losowego, jeśli go nie ma, co może pomóc ci iść do przodu.Ten bit
echo get_the_post_thumbnail($thumbnail->ID, 'small-thumb', array( 'alt' => esc_attr( $post->post_title ), 'title' => esc_attr( $post->post_title ) ));
Zawiadomienie'small-thumb'
to zostanie dopasowane do tych add_image_size FN znajduje się ułożyła się kilka linii. Więc gdybyś miał,add_image_size( 'small-square', 100, 100, true );
możesz zadzwonić'small-square'
alternatywnie.Twoje zdrowie
źródło