Ich möchte die URL des vorgestellten Bildes eines Beitrags in die Kopfzeile einfügen. Wenn ein Facebook-Benutzer eine Wordpress-Seite freigibt, wird der folgende Code in der Kopfzeile angezeigt:
Das rel="image_src"
-Attribut ist das, wonach Facebook sucht.
<link rel="image_src" href="FEATUREDIMAGEURL">
Gibt ein bestimmtes Bild für die Freigabe zurück. Ich kann jedoch nicht herausfinden, wie ich die URL des vorgestellten Bildes des Posts hinzufügen kann.
Ich habe es versucht:
<?php if (has_post_thumbnail( $post->ID ) ): ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ); ?>
<link rel="image_src" href="<?php echo $image; ?>">
<?php endif; ?>
Aber es gab mir einen Parse error: syntax error, unexpected ';'
Fehler.
Um dies zu beantworten und auf das echte Problem hinzuweisen:
Da das HTML-Tag <head>
weit vor der eigentlichen Schleife steht, benötigen Sie etwas anderes als den global $post
.
get_queried_object();
get_queried_object_id();
Der Code ist getestet und funktioniert.
Da Sie diese Funktionalität beim Themawechsel beibehalten möchten, sollten Sie sie in ein Plugin packen.
Das eigentliche Plugin sollte also ungefähr so aussehen:
<?php
/** Plugin Name: (#70215) »kaiser« Post Thumbnail image for FB */
function wpse70215_fb_img()
{
// Not on a single page or post? Stop here.
if ( ! is_singular() )
return;
$post_ID = get_queried_object_id();
// We got no thumbnail? Stop here.
if ( ! has_post_thumbnail( $post_ID ) )
return;
// Get the Attachment ID
$att_ID = get_post_thumbnail_id( $post_ID );
// Get the Attachment
$att = wp_get_attachment_image_src( $att_ID );
printf(
'<link rel="image_src" href="%s">'
,array_shift( $att )
);
}
add_action( 'wp_head', 'wpse70215_fb_img' );
in der zweiten Zeile fehlte eine schließende Klammer; und Sie müssen auf das erste Array-Element von $image
verweisen:
<?php if (has_post_thumbnail( $post->ID ) ): ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ) ); ?>
<link rel="image_src" href="<?php echo $image[0]; ?>">
<?php endif; ?>
http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src
möglicherweise möchten Sie auch eine Prüfung für einzelne Posts oder Seiten hinzufügen, um unerwünschte Ausgaben in Index- oder Archivseiten zu vermeiden. Beispiel:
<?php if ( has_post_thumbnail( $post->ID ) && is_singular() ): ?>