• Super User

    [RETRIBUITO] Piccola modifica a funzione di wordpress

    Ciao a tutti!

    Avrei bisogno di un piccolo aiutino per una stringa di codice...! Per wordpress utilizzo questo codice (molto comune, testato e funzionante) per prelevare la prima immagine del post:

    function catch_that_image()
    {
    global $post, $posts;

    $first_img = '';

    ob_start();

    ob_end_clean();

    $output = preg_match_all('/<img.+src='"['"].*>/i', $post->post_content, $matches);

    $first_img = $matches [1] [0];

    if(empty($first_img)){ //definisce immagine di default
    $first_img = "/images/default.jpg";
    }

    return $first_img;
    }

    ECCO LA MIA RICHIESTA:
    Come potrei limitare la scelta dell'immagine ai soli file jpg, gif e png?

    Offro 5 euro simbolici tramite paypal (penso sia una sciocchezza), se qualcuno mi aiuta gratis meglio ancora! 🙂

    Grazie in anticipo.


  • User Attivo

    Ciao, prova in questo modo:
    [php]function catch_that_image() {
    global $post, $posts;
    $first_img = '';
    ob_start();
    ob_end_clean();
    $output = preg_match_all('/<img.+src='"['"].*>/i',$post->post_content,$matches);
    $estensioniPermesse = array (
    ".jpg",
    ".gif",
    ".png" );
    $first_img = $matches [1] [0];
    $estensione = strtolower(substr($first_img,strrpos($first_img,".")));
    if (! in_array($estensione,$estensioniPermesse)) {
    $first_img = null; //impostiamo $first_img a null così verrà presa l'immagine di default
    }
    if (empty($first_img)) { //definisce immagine di default
    $first_img = "/images/default.jpg";
    }
    return $first_img;
    }[/php]N.B. La modifica apportata fa si che se il formato non è tra quelli permessi, viene impostata l'immagine di default.


  • Super User

    Perfetto, grazie davvero per il tuo aiuto.

    Ora se non chiedo troppo vorrei risolvere l'ultimo problemino:

    essendo un aggregatore se l'immagine nel sito originale viene eliminata, a me dĂ  una bella X rossa, dovuta ovviamente alla mancanza dell'immagine originale.
    Posso aggiungere qualche riga di codice qui sopra che mi dice che SE NON E' DISPONIBILE L'IMMAGINE DI SOSTITUIRLA CON QUELLA DI DEFAULT?

    Paolo


  • Super User

    Per adesso non accetto altre candidature. Se l'utente che mi ha contattato conclude il lavoro lo comunico e si può chiudere, altrimenti continuo a cercare! Grazie a tutti gli interessati.

    Prego tutti coloro che mi hanno contattato di lasciarmi un contatto mail in privato per lavori futuri!

    Paolo


  • User Attivo

    Allora prova così:
    N.B. devi inserire il percorso dell'immagine dove c'è il commento //specificare percorso
    [PHP]function catch_that_image() {
    global $post, $posts;
    $first_img = '';
    ob_start();
    ob_end_clean();
    $output = preg_match_all('/<img.+src='"['"].*>/i',$post->post_content,$matches);
    $estensioniPermesse = array (
    ".jpg",
    ".gif",
    ".png" );
    $first_img = $matches [1] [0];
    $estensione = strtolower(substr($first_img,strrpos($first_img,".")));
    if (! in_array($estensione,$estensioniPermesse)) {
    $first_img = null; //impostiamo $first_img a null così verrà presa l'immagine di default
    }
    if (empty($first_img)) { //definisce immagine di default
    $first_img = "./images/default.jpg";
    if (! file_exists($first_img)) {
    $first_img = ""//specificare percorso
    }
    }
    return $first_img;
    }[/PHP]


  • Super User

    Grazie mille. Mi lasci la tua email per eventuali lavori futuri?

    Si può chiudere!


  • User Attivo

    Di niente l'email è [email protected], altre informazioni le trovi nei siti in firma.