WordPress帖子在标题中显示了图像URL

时间:2012-10-23 作者:Amanda Duke

我想将帖子的特色图片URL添加到标题中。当Facebook用户共享Wordpress页面时,标题中的以下代码:

这个rel="image_src" 属性是facebook正在搜索的内容。

<link rel="image_src" href="FEATUREDIMAGEURL">
将返回共享的特定图像。然而,我不知道如何添加帖子特色图片的URL。。。你能吗?

我试过这个:

<?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; ?>
但它给了我Parse error: syntax error, unexpected \';\' 错误

2 个回复
最合适的回答,由SO网友:kaiser 整理而成

要回答这个问题并指出真正的问题:

作为<head> HTML标记远远早于实际循环,您需要的不是global $post.

get_queried_object();
get_queried_object_id();
插件已经过测试,可以正常工作

由于您可能希望在切换主题时保留此功能,我建议将其包装在插件中。

因此,实际的插件应该围绕以下几行:

<?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\' );

SO网友:Michael

第二行缺少一个右括号;您需要引用$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

您可能还想为单个帖子或页面添加一个检查,以避免索引或归档页面中出现任何不需要的输出;示例:

<?php if ( has_post_thumbnail( $post->ID ) && is_singular() ): ?>

结束

相关推荐

Re-process Images

我有a blog 它拥有嵌入帖子中的所有图像的最高分辨率版本,而不是链接到图像附件页的缩略图。您能告诉我如何重新处理所有嵌入的图像,以便将它们输出为缩小尺寸的缩略图,链接到自己的附件页(这是WordPress的默认设置)吗?我认为我可以让Regenerate Thumbnails 这个插件?