Wordpress:在头部插入作者图像/化身为og:image



在一个帖子模板中,我使用了一个小代码来显示作者的图像/头像,而不是特色图像。

<?php if ( $logo = get_avatar( get_the_author_meta( 'user_email' ), 200 ) ) : echo $logo; ?>

一切都好。。作者的标志在那里但现在,当我完成这个项目时,我想在我希望在function.php中使用此代码的变体,但这根本不起作用。

现在我有了这个:

add_action('wp_head', 'add_meta_tags',2);
function add_meta_tags(){
global $post;
$author_id = get_post_field('post_author' , $post->ID);
$ogimg  = get_avatar_url($author_id->ID, array("size"=>400 )) ;
if( is_single() ) {
echo '<meta property="og:image" content="'. $ogimg  .'" />';
}
}

$author_id给出了作者的id,但我没有得到作者的化身。

无法弄清楚如何使用get_avatar_url函数,但找到了一个解决方法,从如下的耦合img标签中提取src值:

add_action('wp_head', 'add_meta_tags',1);
function add_meta_tags() {
global $post;
$author_id = get_post_field('post_author' , $post->ID);
$rawimg  = get_avatar($author_id, 800) ;
$doc = new DOMDocument();
$doc->loadHTML($rawimg);
$imageTags = $doc->getElementsByTagName('img');
foreach($imageTags as $tag) {
$ogimg = $tag->getAttribute('src');
echo '<meta property="og:image" content="'.$ogimg  .'" />';
echo '<meta name="twitter:image" content="'. $ogimg  .'" />';
}
}

最新更新