Les métadonnées graphiques ouvertes ne sont pas tirées sur Facebook avant d'avoir exécuté ce lien spécifique via le débogueur

wordpress.stackexchange https://wordpress.stackexchange.com/questions/99178

  •  05-11-2019
  •  | 
  •  

Question

J'ai ajouté Open Graph Meta Data à tous les articles sur un site, cependant, lorsque j'essaie de coller un lien de publication sur Facebook, le graphique Meta Information n'est pas chargé.

Ensuite, quand j'insère l'URL dans le débogueur / linter, cela fonctionne, à la fois dans le débogueur et lors de la publication normalement sur Facebook (ce qui n'a pas fonctionné sur les instants auparavant).

Ce problème semble avoir été abordé dans le passé, dans cette question de débordement de pile. Cependant, cette question concerne un environnement Rails.

Dans cette question, l'application n'a pas pu gérer plusieurs demandes HTTP en même temps. Le problème a été résolu en traitant toutes les demandes d'API Facebook en arrière-plan en utilisant quelque chose appelé Delayed_Response.

Quelle est la manière la plus simple dans laquelle je pourrais accomplir ceci ou quelque chose de similaire dans un environnement PHP exécutant WordPress et ainsi résoudre (espérons-le) mon problème?

** Je n'ai pas inclus un exemple de lien dans ce post car dès qu'un utilisateur l'exécute via le débogueur, cela semblera fonctionner. *

Édition - Échantillon de balises Meta à partir d'une page de publication:

<meta property="og:title" content="Budget proposal good news for Ontario drivers - AdvocateDaily.com" />
<meta property="og:type" content="website" />
<meta property="og:image" content="http://build.advocatedaily.com/wp-content/uploads/2013/04/Stacey-Stevens_Colour_NEW_2012-e1354206636925-150x150.jpg" />
<meta property="og:url" content="http://advocatedaily.com/2013/05/budget-proposal-good-news-for-ontario-drivers/" />
<meta property="og:description" content="A provincial budget proposal to reduce auto insurance premiums by an average of 15 per cent is good news for Ontario drivers, but should not come at the cost of benefits available under the policy, says Toronto personal injury lawyer Stacey L. Stevens. &#8220;In response to this announcement, the Insurance Bureau of Canada (IBC) predicts the [...]" />
<meta property="og:site_name" content="Advocate Daily" />

Le PHP est inséré dans WP_head:

add_action('wp_head', 'add_fb_open_graph_tags');
function add_fb_open_graph_tags() {
    if (is_single()) {
        global $post;
        if(get_the_post_thumbnail($post->ID, 'thumbnail')) {
            $thumbnail_id = get_post_thumbnail_id($post->ID);
            $thumbnail_object = get_post($thumbnail_id);
            $image = $thumbnail_object->guid;
        } else {
            $image = get_template_directory_uri()."/images/advocatedaily-avatar.png";
        }
        //$description = get_bloginfo('description');
        $description = og_excerpt( $post->post_content, $post->post_excerpt );
        $description = strip_tags($description);
        $description = str_replace("\"", "'", $description);
?>
<meta property="og:title" content="<?php the_title(); ?> - AdvocateDaily.com" />
<meta property="og:type" content="website" />
<meta property="og:image" content="<?php echo $image; ?>" />
<meta property="og:url" content="<?php the_permalink(); ?>" />
<meta property="og:description" content="<?php echo $description ?>" />
<meta property="og:site_name" content="<?php echo get_bloginfo('name'); ?>" />
<?php   }
}
function og_excerpt($text, $excerpt){
    if ($excerpt) return $excerpt;
    $text = strip_shortcodes( $text );
    $text = apply_filters('the_content', $text);
    $text = str_replace(']]>', ']]>', $text);
    $text = strip_tags($text);
    $excerpt_length = apply_filters('excerpt_length', 55);
    $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
    $words = preg_split("/[\n
     ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
    if ( count($words) > $excerpt_length ) {
            array_pop($words);
            $text = implode(' ', $words);
            $text = $text . $excerpt_more;
    } else {
            $text = implode(' ', $words);
    }
    return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top