我正在使用以下功能,并且在我确定具有精选图像集的页面上使用FB的调试器:
function fb_opengraph() {
global $post;
if(is_page()) {
if(has_post_thumbnail($post->ID)) {
$img_src = wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), 'medium');
} else {
$img_src = get_stylesheet_directory_uri() . '/img/opengraph_image.jpg';
}
if($excerpt = $post->post_excerpt) {
$excerpt = strip_tags($post->post_excerpt);
$excerpt = str_replace("", "'", $excerpt);
} else {
$excerpt = get_bloginfo('description');
}
?>
<meta property="og:title" content="<?php echo the_title(); ?>"/>
<meta property="og:description" content="<?php the_content(); ?>"/>
<meta property="og:type" content="article"/>
<meta property="og:url" content="<?php echo the_permalink(); ?>"/>
<meta property="og:site_name" content="<?php echo get_bloginfo(); ?>"/>
<meta property="og:image" content="<?php echo $img_src; ?>"/>
<?php
} else {
return;
}
}
add_action('wp_head', 'fb_opengraph', 5);
目前正在发生的事情是$ img_src将返回值“Array”,而不是该页面的特色图像的URL。我不确定这个“数组”值是从哪里来的,但更重要的是我试图在没有运气的情况下提取特色图片网址。
有什么想法吗?谢谢!
答案 0 :(得分:1)
https://developer.wordpress.org/reference/functions/wp_get_attachment_image_src/
这应该给你一个数组
while((cut = buffer.find("\r\n")) == -1)
{
struct timeval tv;
tv.tv_sec = 5;
setsockopt(cli_socket, SOL_SOCKET, SO_RCVTIMEO,(struct timeval *)&tv,sizeof(struct timeval));
recv(cli_socket, tmpBuffer, 100, 0);
buffer += tmpBuffer;
memset(tmpBuffer, 0, 100);
}
获取需要获取相应数组元素的URL
wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), 'medium');
试一试
答案 1 :(得分:1)
wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), 'medium');
它将返回一个数组。该数组的第一个元素将包含图像URL。
因此,您需要以这种方式提及该数组的第一个索引:$img_src[0]
完整行将是:
<meta property="og:image" content="<?php echo $img_src[0]; ?>"/>