此函数用于从facebook帖子链接中提取作者,并获取作者facebook头像的url
function get_fb_avatarurl_from_fb_post( $fb_post_link ) {
$avatar_template = \'http://graph.facebook.com/%username%/picture\';
$user = \'\';
$avatar_url = false;
$parsed_url = parse_url( $fb_post_link );
if ( isset( $parsed_url[\'path\'] ) ) {
$path = trim( $parsed_url[\'path\'], \'/\' );
preg_match( \'#^.+/#Uuis\', $path, $user );
if ( ! empty( $user ) && isset( $user[0] ) )
$avatar_url = str_replace( \'%username%\', trim( $user[0], \'/\' ), $avatar_template );
}
return $avatar_url;
}
函数需要以下格式的链接
https://www.facebook.com/the.facebook.post.author/posts/123456789123456
要显示facebook头像或帖子缩略图,可以使用以下代码片段
global $post;
$avatar_img_url = get_fb_avatarurl_from_fb_post( [the facebook post url] );
$post_img_html = get_the_post_thumbnail( $post->ID, \'thumbnail\' );
if ( empty( $post_img_html ) )
$post_img_html = \'<img src="" />\'; // modify the html to whatever you want
if ( ! empty( $avatar_img_url ) )
$post_img_html = preg_replace( \'#(?<=src\\=["|\\\']).+(?=["|\\\'](\\s|\\/\\>))#Uuis\', $avatar_img_url, $post_img_html );
echo $post_img_html;
我不知道你从哪里得到facebook的帖子链接,但我想你已经在任何地方得到了它。代码片段首先尝试获取fb头像url。然后尝试获取帖子缩略图。
get_the_post_thumbnail()
提供完整的html代码,如
<img width="150" height="150" src="[some url]" class="attachment-thumbnail wp-post-image" alt="Uploaded image your title here" />
.
如果没有可用的帖子缩略图,则使用html模板(您必须对其进行编辑)。如果有帖子缩略图可用
and fb化身url,图像的源被fb化身url替换。如果帖子缩略图可用,但没有fb头像url,则会显示帖子缩略图。
如果要修改alt
-属性,还可以扩展if
-陈述
if ( empty( $post_img_html ) )
$post_img_html = \'<img src="" alt="" />\';
if ( ! empty( $avatar_img_url ) ) {
$fb_alt_attrb = \'The new text for alt attrb if a fb avatar is displayed\';
$post_img_html = preg_replace( \'#(?<=src\\=["|\\\']).+(?=["|\\\'](\\s|\\/\\>))#Uuis\', $avatar_img_url, $post_img_html );
$post_img_html = preg_replace( \'#(?<=alt\\=["|\\\']).+(?=["|\\\'](\\s|\\/\\>))#Uuis\', $fb_alt_attrb, $post_img_html );
}
我希望它能帮助你。
Edit 这将改变post thumbnail / featured image 使用facebook头像。