• User

    Wordpress related posts with thumbs

    Ciao a tutti!
    Ho installato questo plugin che permette di estrarre l'anteprima della prima immagine inserita in un post e affiancarla ad esso quando viene listato tra gli articoli correlati.

    A me però servirebbe estrarre, solo dove presente, la seconda immagine ed ho provato ad utilizzare il preg_match_all come suggerito sul sito del plugin ma non va. Suggerimenti?

    Questo è il codice originale

    //inizio formattazione output
        $all_post_text = $related_post->post_content;
        // estrazione della prima immagine
        $first_img=false;
        $resized_url=false;
        if ( preg_match  ( '/resize.php\?url=(.*?)&/i',$all_post_text,  $matches)){
                        
                $first_img = $matches[1];
                $first_img = urldecode ($first_img);
                $crypt = new encryption_class;
                $dimension_encoded = urlencode ($crypt->encrypt($zkey,$wp_rp_thumb_size));
                $imgurl_encoded = urlencode ($crypt->encrypt($zkey,$first_img));
                $resized_url = $blogurl."/wp-content/plugins/WPRPT/resize.php?size=".$dimension_encoded."&url=".$imgurl_encoded;
        }
        elseif ( preg_match  ( '/<img.*?src=["\'](.*?)["\'].*?>/i',$all_post_text,  $matches)){
                $first_img = $matches[1];
                $crypt = new encryption_class;
                $dimension_encoded = urlencode ($crypt->encrypt($zkey,$wp_rp_thumb_size));
                $imgurl_encoded = urlencode ($crypt->encrypt($zkey,$first_img));
                $resized_url = $blogurl."/wp-content/plugins/WPRPT/resize.php?size=".$dimension_encoded."&url=".$imgurl_encoded;
        } else {}
        $text_content = strip_tags($related_post->post_content); // toglie i tag html dal testo
        $text_content = truncateText($text_content,150,'...',false,true); //numero di caratteri da mostrare del testo
        $attachment_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_parent = '$related_post->ID' AND post_status = 'inherit' AND post_type='attachment' ORDER BY post_date DESC LIMIT 1");
        if ($resized_url) {
          $output .= '  <div class="img_related_post"><img src="'.$resized_url.'"/></div>'."\n";
        } else {
          $output .= '  <div class="img_related_post">'.get_attachment_icon($attachment_id).'</div>'."\n";
        }
        $output .=  '  <div class="text_related_post">'."\n".'    <a href="'.get_permalink($related_post->ID).'" title="'.wptexturize($related_post->post_title).'">'.wptexturize($related_post->post_title)."</a>\n";
        if ($show_date){
          $dateformat = get_option('date_format');
          $output .=   "    <span class='publi_related_post'>Pubblicato il:</span> <span class='publi_related_post_date'>".mysql2date($dateformat, $related_post->post_date) . "</span>\n";
        }
        if ($show_comments_count){
          $output .=  "    <span class='comments_related_post'>Commenti: " . $related_post->comment_count . "</span>\n";
        }
        $output .=  "  </div>\n";
      }
      $output = '<ul class="related_post">' . "\n". $output . "\n".'</ul>';
      //fine formattazione
    ```e questo la soluzione proposta che non funziona
    

    if ( preg_match_all ( '//i',$all_post_text, $matches)){

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

  • User

    nessuno che può aiutarmi?