У меня есть веб-страница (под Wordpress), для которой я хочу отображать другое изображение предварительного просмотра в сообщениях Facebook в зависимости от параметра строки запроса.
Для этого внутри моего тега <head>
яhave:
<?php
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $_GET['lbcid'] ), 'single-post-thumbnail' );
?>
<meta property="og:url" content="http://uat1.one-pager.sugarloafculinary.com/?lbcid=6957" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Test Title" />
<meta property="og:description" content="Description Here" />
<meta property="og:image" content="<?php echo $image[0] ?>" />
$image[0]
выводит действительный URL, но Facebook, похоже, вообще игнорирует этот тег <meta>
, когда значение атрибута content
выводится динамически PHP.Вместо этого он выбирает 1-е изображение на странице, которое соответствует требованиям.Я вошел в инструмент отладки FB и повторно очищен - это не имеет никакого эффекта (в этом вопросе).
Когда я жестко кодирую значение атрибута content
, оно отображается, как и ожидалось.Пример:
<meta property="og:image" content="http://uat1.one-pager.sugarloafculinary.com/wp-content/uploads/2018/07/blog_bulgar-pudding.jpg" />
Вы можете увидеть это в действии на http://uat1.one -pager.sugarloafculinary.com /? Lbcid = 6957 .Если вы посмотрите исходный код, то увидите, что в этом теге <meta>
есть действительный (динамически генерируемый) URL-адрес изображения, но если вы протестируете страницу в FB Sharing Debugger , вы 'Вы увидите, что указанное изображение не отображается.
Может кто-нибудь увидеть какие-либо ошибки в моем коде?Есть ли какая-то хитрость, чтобы заставить это работать?Возможно, это WordPress?(Я не тестировал за пределами WP).
РЕДАКТИРОВАТЬ:
См. Принятый ответ ниже.Код по URL-адресам выше был изменен, чтобы решить проблему, поэтому они больше не будут иллюстрировать проблему.Простое решение: кажется, что скребок FB останавливается на первом экземпляре og: image, шахта которого была 2-й и, таким образом, игнорировалась.