it-swarm.com.de

Wie erstelle ich ein "og: image" -Meta für die Facebook-Freigabe, wenn das Bild im Beitrag nicht vorhanden ist?

Ich habe einen Code in der header.php meiner Website, der og: image-Metadaten für die FB-Freigabe generieren kann. Es funktioniert perfekt, wenn der angegebene Beitrag ein bestimmtes Bild enthält.

<?php $fb_image = wp_get_attachment_image_src(get_post_thumbnail_id( get_the_ID() ), '480'); ?>
<?php if ($fb_image) : ?>
  <meta property="og:image" content="<?php echo $fb_image[0]; ?>" />
<?php endif; ?>

Ich wäre Ihnen dankbar, wenn Sie mir mitteilen könnten, wie Sie diesen Code ändern (oder ersetzen) können, um ein og: image-Meta-Tag zu erhalten, selbst wenn der Beitrag mindestens 1 Foto enthält, aber keines davon als "Hervorgehoben" festgelegt ist.

1
akopacsi

Wie bereits erwähnt, erkennt Facebook Bilder automatisch, wenn das OG-Image-Tag fehlt. In einigen Fällen werden jedoch möglicherweise andere Bilder erkannt (z. B. nicht von Ihrem Beitrag, sondern von anderen Inhalten).

In diesem Fall kann es hilfreich sein, eine Liste aller an den Beitrag angehängten Bilder abzurufen und das gewünschte oder, wie Sie vorschlagen, das erste zu verwenden. Das folgende Beispiel ruft den ersten Bildanhang des Posts mit get_posts ab, ruft dann das zugehörige Miniaturbild ab und zeigt die Bild-URL an. Sie können die in $thumbnail[0] gespeicherte Bild-URL zusammen mit ihrer Breite und Höhe verwenden, die in $thumbnail[1] bzw. $thumbnail[2] gespeichert sind.

$images = get_posts( array(
    'post_parent'       => get_the_ID(),
    'post_type'         => 'attachment',
    'numberposts'       => 1, // Single attachment
    'post_status'       => null,
    'post_mime_type'    => 'image', // Only images
    'orderby'           => 'post_date',
    'order'             => 'ASC'
) );

if ( ! empty( $images ) ) {
    $thumbnail = wp_get_attachment_image_src( $images[0]->ID, 'thumbnail' );
    echo $thumbnail[0];
}

Beachten Sie, dass mit diesem Code nicht das erste Bild abgerufen wird, das sich in dem Beitrag an sich befindet, sondern der erste Anhang zu dem Beitrag, bei dem es sich um ein Bild handelt. In den meisten Fällen sind diese beiden identisch (wenn Sie Ihren Posts nur Bilder hinzufügen, um sie in den Inhalt der Posts einzufügen, sind sie identisch).

4
engelen