将Facebook Open Graph协议正确转换为WordPress主题?

时间:2012-01-27 作者:Alex

我在wp主题中的之前使用了此代码<head>:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:og="http://ogp.me/ns#"
      xmlns:fb="http://www.facebook.com/2008/fbml">
之后<head> 这是:

 <meta property="og:title" content="<?php the_title() ?>"/>
    <meta property="og:fb:app_id" content="1111111111"/>
    <meta property="og:type" content="article"/>
    <meta property="og:url" content="<?php the_permalink() ?>"/>
    <meta property="og:image" content="<?php echo catch_that_image() ?>"/>
    <meta property="og:site_name" content="<?php bloginfo(\'name\') ?>"/>
    <meta property="fb:admins" content="USER_ID"/>
        <meta property="og:description" content="<?php echo strip_tags(get_the_excerpt($post->ID)); ?>"

<?php function og_meta_desc() {
global $post;
$meta = strip_tags($post->post_content);
$meta = str_replace(array("\\n", "\\r", "\\t"), \' \', $meta);
$meta = substr($meta, 0, 200);
echo "<meta property=\\"og:description\\" content=\\"$meta\\"/>";
}
og_meta_desc();
?> 
和在功能上。php此:

function catch_that_image() {
 global $post, $posts;
 $first_img = \'\';
 ob_start();
 ob_end_clean();
 $output = preg_match_all(\'/<img.+src=[\\\'"]([^\\\'"]+)[\\\'"].*>/i\', $post->post_content, $matches);
 $first_img = $matches [1] [0];

 if(empty($first_img)){ //Defines a default image
 $first_img = "/images/default.jpg";
 }
 return $first_img;
}
但是要获得第一张图片,我如何获得每个帖子的“特色图片”?

以及开发人员。facebook。com/tools/debug/it给了我以下消息:

刮取信息

响应代码:502

获取的URL:www.mysite。com/post-1

规范URL:www.mysite。com/post-1

必须修复的关键错误

刮页错误:错误的响应代码

应修复的打开图形警告

推断属性:应该显式提供og:url属性,即使可以从其他标记推断出值。

推断属性:应明确提供og:title属性,即使可以从其他标记推断出值。

我做错什么了吗?wordpress网站还有其他“正确”的方法吗?如果我这样做了,我怎么能修复它?

1 个回复
SO网友:Chip Bennett

但是要获得第一张图片,我如何获得每个帖子的“特色图片”?

使用get_the_post_thumbnail(). 您只需将帖子的ID传递给它;e、 g.:

<?php
global $post;
$post_thumbnail = get_the_post_thumbnail( $post->ID );
?>

结束