Törölt videók és képek ellenőrzése
2021-09-07T13:50:14+02:00
2021-10-23T13:43:39+02:00
2022-08-12T05:10:28+02:00
*deleted_23419333
Sziasztok!

WordPress-ben így listázom ki a post-okat (videókat):

if( have_posts() ) { while( have_posts() ) { the_post(); $meta = get_post_meta( get_the_ID() ); // $meta [ 'thumbnail' ] [ 0 ] = 'https://*/image.jpg'; // $meta [ 'video_thumb' ] [ 0 ] = 'https://*/video.mp4'; print '<video width="160" height="90" preload="none" poster="' . str_replace( 'http://', 'https://', $meta [ 'thumbnail' ] [ 0 ] ) . '" muted="muted" loop><source src="' . str_replace( 'http://', 'https://', $meta [ 'video_thumb' ] [ 0 ] ) . '" type="video/mp4"></video>'; } } else {}

Ez tökéletesen működik. Ha viszont van egy hibásan megadott thumbnail vagy video_thumb URL vagy esetleg törölve van egy videó, akkor viszont gondok vannak.

Megtehetném azt, hogy a file_get_contents függvénnyel ellenőrzöm a kép és a videó meglétét a listázáskor, de nincs ettől szebb, jobb, gyorsabb megoldás? Ha egy oldalon van mondjuk 20 videó, akkor az 40 file_get_contents függvény meghívás lenne a 20 kép és 20 videó meglétének ellenőrzése végett és ez már szerintem az oldal betöltődését is lelessítaná, ami SEO miatt nem jó meg a látogatóknak se tetszene.

Logikusabb lenne, ha írnék egy külön plugin-t arra ami cron-nal vagy bizonyos időközönként manuálisan leellenőrizné ezeket az URL-eket? Ezt csak azért nem tartanám jó ötletnek mert akkor a két ellenőrzés között bizony megjelenhet a kezdőlapon olyan videó/kép is, ami már nem is létezik.

Esetleg AJAX-szal és/vagy JavaScript-tel ellenőrizzem mindig a videó listákat? Ebben az esetben ha olyan képet vagy videót találok, ami már nem létezik, akkor azt tudom törölni az oldalról vagy esetleg csak ideiglenesen "publish" helyett "draft"-ra állítom a "post_status"-t és mindig csak a "publish" státuszúakat listázom és majd manuálisan eldöntöm, hogy törlöm-e a "draft" állapotúakat? Mert előfordulhat (már ha egyáltalán előfordulhat) olyan videó/kép fájl is, ami csak ideiglenesen nem érhető el, de mondjuk máskor, egy oldal reload után igen vagy ha kijavítom az URL-t, akkor jó lesz.

Hogyan oldanátok ezt meg?

Előre is köszönöm.
Mutasd a teljes hozzászólást!
Kezdetnek file_get_contents helyett elég a file_exists, ami sokkal gyorsabb. (Mivel nem vagy kíváncsi a file tartalmára, nem is kell beolvasni.)
Viszont inkább ott javítanám meg, ahol bekerülhet az adatbázisba olyan kép/videó ami nem létezik, vagy ahol kitörlődhet olyan kép/videó amire mutató referencia még megvan az adatbázisban.

Ha a linkek külső URL-ről érkeznek, akkor meg az őket hosztoló oldalnál érdemes érdeklődni, hogy milyen API-n vagy hogyan tudod garantálni a fájlok létezését, semmiképpen nem kell php-val olvasgatni őket.
Mutasd a teljes hozzászólást!

abcd