• User

    [Risolto]Foto errata quando viene condiviso il post su Facebook. Come risolvere?

    Ho inserito nel mio wordpress il plugin "share this" ma ogni volta appare in facebook la foto di un banner pubblicitario posto nella sidebar, invece della foto dell'articolo.
    Uso per i banner adrotate.
    Qualcuno ha avuto lo stesso problema?


  • User Attivo

    Ciao pepponz, è un problema di Facebook nel senso che Facebook prova a recuperare la prima immagine che trova all'interno della pagina.
    Dovresti inserire il metatag og:image (tag dell'opengraph protocol) e lì specificare di volta in volta l'immagine dell'articolo che vuoi utilizzare, oppure inserisci l'url del logo del tuo sito...
    Esistono dei plugin che permettono di gestire la cosa in maniera trasparente...


  • User

    Grazie Cardy

    Potresti fare un esempio? io nn sono molto pratico di codici.


  • User

    Risolto: nell'articolo basta inserire la foto a destra.
    🙂


  • User Attivo

    ciao, se leggi questo post, ***

    ti spiego come impostare l'anteprima di un post da condividere, il tutto in automatico... e senza dover mettere l'immagine per forza a destra... ti prende la prima immagine che trova direttamente nel post, e non nella sidebar.


  • User Attivo

    @pepponz said:

    risolto....
    nell'articolo basta inserire la foto a destra
    🙂

    Questa è la soluzione semplice, ed in effetti la più funzionale...


  • User Attivo

    scusate, non volevo fare autopromozione, era solo che avevo spiegato bene tutto....

    fai una copia del file functions.php, poi apri l'originale e incolla in fondo:

    function set_default_image(){
        global $post;
        $image = str_img_src($post->post_content);
        if($image != ""){
            echo '<link rel="image_src" href="'. $image . '" />' . "\n";
        }
    }
    add_action('wp_head', 'set_default_image');
    
    function str_img_src($html) {
        if (strpos($html, '<img') !== false) {
            $imgsrc_regex = '#<\s*img [^\>]*src\s*=\s*(["\'])(.*?)\1#im';
            preg_match($imgsrc_regex, $html, $matches);
            unset($imgsrc_regex);
            unset($html);
            if (is_array($matches) && !empty($matches)) {
                return $matches[2];
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
    

    ora ti imposterà la prima immagine del post. Magari non vedrai i risultati anche fino a 24 ore


  • User Newbie

    Ciao, anch'io ho questo problema con facebook,
    ho inserito questo script in wp-includes/functions.php
    Però forse baglio qualcosa perchè una volta caricato il file e ricaricando la pagina del sito, mi da errore in questa riga "add_action('wp_head', 'set_default_image');"
    Quindi o sbaglio il punto dove inserisco lo script o c'è qualcosa che non va.
    Io l'ho incollato dopo l'ultima parentesi "}" e prima della chiusura "?>"
    Aiutatemi a capire dove sbaglio. 😉

    PS: ho provato con uno script simile ma a quanto pare stesso problema, non riconsoce "add_action('wp_head', 'set_default_image');"
    "Fatal error: Call to undefined function add_action() in /membri/thewolfblog/wp-includes/functions.php on line 4559"


  • User Attivo

    Va inserito nel file functions.php del tema che stai usando.
    Non in wp-includes/functions.php ma in wp-content/themes/nometuotema/functions.php


  • User Newbie

    Si grazie dell'aiuto, avevo sbagliato proprio il function.php.
    Però ho risolto installando il plugin per wordpress "Facebook opengraph".


  • User Newbie

    @prototipo88 said:

    scusate, non volevo fare autopromozione, era solo che avevo spiegato bene tutto....

    fai una copia del file functions.php, poi apri l'originale e incolla in fondo:

    function set_default_image(){
       global $post;
       $image = str_img_src($post->post_content);
       if($image != ""){
           echo '<link rel="image_src" href="'. $image . '" />' . "\n";
       }
    }
    add_action('wp_head', 'set_default_image');
    
    function str_img_src($html) {
       if (strpos($html, '<img') !== false) {
           $imgsrc_regex = '#<\s*img [^\>]*src\s*=\s*(["\'])(.*?)\1#im';
           preg_match($imgsrc_regex, $html, $matches);
           unset($imgsrc_regex);
           unset($html);
           if (is_array($matches) && !empty($matches)) {
               return $matches[2];
           } else {
               return false;
           }
       } else {
           return false;
       }
    }
    

    ora ti imposterà la prima immagine del post. Magari non vedrai i risultati anche fino a 24 ore

    Per vedere da subito i risultati dovete cancellare la cache su facebook per fare questo inserite l'url dell' articolo in questione qui: https://developers.facebook.com/tools/debug e poi cliccate su Debug

    Io ho provato sul mio blog xtap.it e funziona perfettamente.

    :ciauz:


  • User Newbie

    ciao

    c'è per caso una soluzione anche per blogger?

    l'deale sarebbe: foto del post e prime righe del post.

    ora mette la foto che trova per prima e le prime righe dei commenti se l'articolo è commentato

    il che è un problema quando i lettori vgoliono condividere un post.

    grazie


  • User Newbie

    ciao
    con questo codice ho risolto perfettamente il problema dell'immagine di anteprima su facebook. Ora il problema è che non mi fa più visualizzare l'anteprima dell'immagine del post su google+ !
    Da lo stesso problema a qualcun'altro? Soluzioni?

    Grazie