Открытые метаданные графика не натягиваются на Facebook до тех пор, пока я не запустил эту конкретную ссылку через отладчик

Я добавил открытые метаданные диаграммы ко всем сообщениям на сайте, однако, когда я пытаюсь вставить ссылку на Facebook, метаданные графика не загружаются.

Затем, когда я вставляю URL-адрес в debugger / linter , он работает как внутри отладчика, так и при обычной публикации в Facebook (что не срабатывало раньше).

Этот вопрос, по-видимому, был рассмотрен в прошлом в этом вопросе переполнения стека . Однако этот вопрос относится к среде Rails.

В этом вопросе приложение не может обрабатывать несколько HTTP-запросов одновременно. Проблема была решена путем обработки всех запросов API Facebook в фоновом режиме с помощью функции delayed_response.

Каков самый простой способ, с помощью которого я мог бы выполнить это или что-то подобное в среде PHP, работающей под WordPress, и тем самым (надеюсь) решить мою проблему?

** Я не включил образец ссылки в этот пост, потому что как только пользователь запустит его через отладчик, он будет работать. *

Изменить. Образец метатег из почтовой страницы:

<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://img.wordpressask.com/facebook/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" /> 

PHP вставляется в 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); } 

Во-первых, это не особый вопрос WordPress, это вопрос в Facebook.

Во-вторых, Facebook кэширует страницы, они не сканируют их при каждом представлении. Если у вас есть URL-адрес, который уже был отправлен в Facebook раньше, то он уже сканировал его для данных OG один раз раньше и сохранил его в своем кеше. Если позже вы измените данные OG, они не заметят его немедленно, потому что они вытаскивают из своего кеша, а не со страницы.

Отладчик Facebook заставляет их искатель извлекать из страницы в реальном времени и, таким образом, обновляет их кеш.

Просто так, как на самом деле. Если URL-адрес когда-либо был опубликован в Facebook раньше, то изменение данных OG на нем не будет иметь немедленного эффекта. Это займет несколько недель до уведомления FB. Использование отладчика переопределяет это.

У меня такая же проблема. Что вам нужно, так это рассказать Facebook, чтобы снова очистить содержимое.

Перейдите по этой ссылке: https://developers.facebook.com/tools/debug/sharing/ и подключите свой URL. После возвращения отладчика вы должны увидеть кнопку, которая говорит «scrape again». Нажмите на нее.

После того, как я это сделал, информация появилась как обычно на Facebook.

Я уверен, что есть более прямой способ рассказать Facebook, чтобы очистить ваш контент заново, но это тоже работает.