• User

    Richiamare script per facebook

    Ciao a tutti,

    premessa: NON conosco php.

    Ciò detto, nel mio sito ho inserito diversi pulsanti "mi piace" di Facebook.

    Quando si clicca "mi piace", il link apparirà nella bacheca della persona che ha cliccato insieme ad una immagine.

    Esiste un modo per potere scegliere l'immagine da pubblicare, questo:

    
    <link rel="image_src" href="miosito.it/1.jpg" />
    
    
    <script >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;
        }
    }</script>
    

    In questo modo funziona, ma:

    Per evitare di inserire il codice tra <script> in ogni pagina html pensavo di inserirlo su un file php e richiamarlo in qualche modo:

    <script type="text/javascript" src="miosito.it/esempio.php"></script>
    

    Purtroppo non funziona, potreste dirmi dove sbaglio e se realmente è una cosa possibile da fare?

    Grazie in anticipo...


  • Consiglio Direttivo

    Ciao spysurf,
    prova a scrivere tra i tag <head></head> questo:
    [php]
    <link rel="image_src" href="miosito.it/1.jpg" />
    <script type="text/javascript" src="miosito.it/esempio.js"></script>
    [/php]

    Il file esempio deve avere estensione .js

    😉


  • User

    Grazie Samyorn,

    potresti gentilmente dirmi se nel file esempio.js il codice deve essere tra i tag <script>?

    Ho provato sia con che senza ma non sembra funzionare.

    Non è che devo settare una variabile?

    Grazie ancora.


  • Consiglio Direttivo

    Sorry, purtroppo la fretta non mi ha fatto comprendere lo script. Non è un .js è php.

    Ok per il file esempio.php e il cui contenuto deve essere solo:

    [php]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 = '#<\simg [^>]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;
    }
    }[/php]Ma prima di di questo che mi sembra superfluo ora che letto meglio lo script, prova a mettere tra i tag <head></head> solo

    <link rel="image_src" href="miosito.it/1.jpg" />
    Senza richiamare script. Per quello che ho capito tu vuoi che ti visualizzi sempre quell'immagine invece di fargliela scegliere allo script a seconda di quelle presenti nel post. 😉