Jai ajouté ouvrez les méta-données graphiques à tous les messages sur un site, cependant, lorsque jessaie de coller un lien de publication sur Facebook, les méta-informations graphiques ne sont pas chargées.
Ensuite, lorsque jinsère lURL dans le débogueur / linter , cela fonctionne, à la fois dans le débogueur et lors de la publication normale sur Facebook (ce qui na pas fonctionné quelques instants auparavant).
Ce problème semble avoir été résolu par le passé, dans cette question de Stack Overflow . Cependant, cette question concerne un environnement Rails.
Dans cette question, lapplication ne pouvait pas gérer plusieurs requêtes http en même temps. Le problème a été résolu en traitant toutes les requêtes dAPI Facebook en arrière-plan à laide de quelque chose appelé delay_response.
Quelle est la manière la plus simple dont je pourrais accomplir ceci ou quelque chose de similaire dans un environnement PHP exécutant WordPress et ainsi (espérons-le) résoudre mon problème?
** Je nai pas inclus dexemple de lien dans cet article car dès quun utilisateur lexécute via le débogueur, il « semblera fonctionner. *
Edit- Exemple de balises meta à partir dune page de message:
<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. “In response to this announcement, the Insurance Bureau of Canada (IBC) predicts the [...]" /> <meta property="og:site_name" content="Advocate Daily" />
Le PHP 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); }
Commentaires
- Comment laviez-vous ajouté et que faites-vous précisément pour en informer Facebok de manière proactive?
- Jai une fonction qui écrit dans mon en-tête si is_post (). Je ' modifierai mon message et ajouterai un exemple dextrait de métadonnées.
Réponse
Premièrement, ce nest pas une question spécifique à WordPress, cest une question Facebook.
Deuxièmement, Facebook met en cache des pages, ils ne les explorent pas à chaque soumission. Si vous avez un URL qui a déjà été soumise à Facebook auparavant, ils lauront déjà explorée pour les données OG une fois auparavant, et les auront enregistrées dans leur cache. Si vous modifiez ultérieurement les données OG, ils ne le remarqueront pas immédiatement, car ils » extraire de leur cache, pas de la page.
Le débogueur Facebook force son robot dexploration à extraire de la page en temps réel, et met ainsi à jour son cache.
Cest aussi simple que cela Si lURL a déjà été publiée sur Facebook auparavant, la modification des données OG ne prendra pas effet immédiatement. Cela « prendra quelques semaines avant les notifications FB. Lutilisation du débogueur remplace cela.
Commentaires
- Merci, je ' Je vais attendre. Jai posté cette question dans WordPress parce que je me demandais sil y avait un meilleur moyen de gérer les demandes dAPI Facebook en arrière-plan dans un environnement WordPress, cela étant dit, votre point est tout à fait juste et votre réponse a du sens. Merci.
Réponse
Jai eu le même problème. Ce que vous devez dire, cest Facebook pour récupérer à nouveau votre contenu.
Rendez-vous sur ce lien: https://developers.facebook.com/tools/debug/sharing/ et branchez votre URL. Une fois le débogueur revenu, vous devriez voir un bouton indiquant « gratter à nouveau ». Cliquez dessus.
Après cela, les informations sont apparues normalement sur Facebook.
Je suis sûr quil existe un moyen plus direct de dire à Facebook de gratter à nouveau votre contenu, mais cela fonctionne aussi.
Commentaires
- Bien! Cette option nétait en fait pas ' dans lURL dorigine de Facebook, au moment de la publication de cette question. Cest bon de le savoir ' est là maintenant.