Установка изображения записи Custom Post как og:image

26 авг. 2014 г., 16:50:22
Просмотры: 35.6K
Голосов: 3

Я пытаюсь установить изображение записи как og:image

Я пробовал различные способы и плагины (Yoast), но сложно разобраться с этим.

Проблема в том, что система не берет изображение записи, вместо этого она выбирает изображения из контента.

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

<div class="image-wrapper">
        <?php if( get_field('featured_image') ): ?>
        <?php $featuredImage = get_field('featured_image'); ?>
        <img rel="image_src" src="<?php echo $featuredImage['url']; ?>" alt="">
        <?php else: ?>
        <img src="http://lorempixel.com/842/458/?rand9" alt="">
        <?php endif; ?>
</div>

Происходит странная вещь: когда в записи блога нет изображений в контенте, тогда система берет изображение записи и изображения из сайдбара. Я также запускал отладчик Facebook, но опять же он берет только изображения из контента.

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

<meta property="og:image" content="<?php $post_thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'large'); echo $post_thumbnail[0]; ?>" />

Буду благодарен за любые предложения. Если нужна дополнительная информация, дайте знать.

0
Все ответы на вопрос 2
3

Похоже, что ваш сайт не использует встроенную функцию WordPress Изображения записи, а вместо этого применяет пользовательское поле для изображения (вероятно, из Advanced Custom Fields). Плагин Yoast, Jetpack и, предположительно, многие другие ищут именно Изображение записи при установке метатега opengraph. У вас есть два варианта:

  1. Использовать встроенную функцию Изображения записи вместе с одним из плагинов, которые добавляют это изображение в метатег opengraph
  2. Изменить свойство meta для использования поля ACF:

<meta property="og:image" content="<?php $featuredImage = get_field('featured_image'); echo esc_url( $featuredImage['url'] ); ?>" />


Примечание: если ваше изображение записи (независимо от способа его реализации) несет смысловую нагрузку и не является "чисто декоративным", убедитесь, что ваш сайт поддерживает возможность добавления соответствующего альтернативного текста для доступности.

26 авг. 2014 г. 18:41:57
Комментарии

Привет, спасибо за ответ. Ты прав, я использую ACF для изображения записи. Я выбрал второй вариант, но тег на самом деле не подхватывает изображение, в исходном коде это выглядит так: <meta property="og:image" content="">

Kenny Van Sittert Kenny Van Sittert
27 авг. 2014 г. 12:49:43

Получилось заработать: <meta property="og:image" content="<?php $featuredImage = get_field('featured_image'); echo $featuredImage['url']; ?>" /> Спасибо за помощь

Kenny Van Sittert Kenny Van Sittert
27 авг. 2014 г. 13:37:54

Ой! Прости за мой косяк с именованием переменной. Вообще, лучшая практика - оставлять esc_url() для санитизации.

mrwweb mrwweb
27 авг. 2014 г. 19:18:01
1

вы можете создать свой собственный плагин или просто использовать его в functions.php

add_action('wp_head', 'dgsoft_fb');
function dgsoft_fb(){
    if( is_single() ) {
        echo '<meta property="og:image" content="'. get_the_post_thumbnail_url(get_the_ID(),'full')   .'" />';
    }
}
11 окт. 2018 г. 11:58:59
Комментарии

хорошо, но я бы хотел заменить текущий тег

Fanky Fanky
23 окт. 2020 г. 22:12:37