Je souhaite ajouter l'URL de l'image sélectionnée d'une publication à l'en-tête. Lorsqu'un utilisateur Facebook partage une page Wordpress, ce code dans l'en-tête:
L'attribut rel="image_src"
est ce que recherche facebook.
<link rel="image_src" href="FEATUREDIMAGEURL">
Renverra une image spécifique pour le partage. Cependant, je ne peux pas comprendre comment ajouter l'URL de l'image sélectionnée de la publication ... Pouvez-vous?
J'ai essayé ceci:
<?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; ?>
Mais cela m'a donné une erreur Parse error: syntax error, unexpected ';'
.
Pour répondre à cette question et indiquer le problème réel :
Comme la balise HTML <head>
arrive bien avant la boucle réelle, vous aurez besoin de quelque chose d'autre que la global $post
.
get_queried_object();
get_queried_object_id();
Le code est testé et fonctionne.
Comme vous souhaitez peut-être conserver cette fonctionnalité lors du changement de thème, je vous suggérerais de l'envelopper dans un plugin.
Donc, le plugin réel devrait être quelque chose autour des lignes suivantes:
<?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' );
il manquait un crochet de fermeture dans la deuxième ligne; et vous devez référencer le premier élément de tableau de $image
:
<?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
vous pouvez également ajouter une coche pour un article ou une page afin d'éviter toute sortie indésirable dans les pages d'index ou d'archive; Exemple:
<?php if ( has_post_thumbnail( $post->ID ) && is_singular() ): ?>