我在本地语言中使用wp字幕插件作为标题,默认wordpress标题作为英语标题。我需要插件生成的字幕作为facebook上共享文章的标题。
get_the_subtitle();
以上代码是用于调用子标题的插件特定函数。
我使用下面显示的代码(在function.php中)作为Facebook开放图元数据来实现我的目标。
echo \'<meta property="og:title" content="\' . get_the_subtitle() . \'"/>\';
但只有我得到默认的wordpress标题为
og:title content. 下面是php函数中的代码。
//Adding the Open Graph in the Language Attributes
function add_opengraph_doctype( $output ) {
return $output . \' xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml"\';
}
add_filter(\'language_attributes\', \'add_opengraph_doctype\');
//Lets add Open Graph Meta Info
function insert_fb_in_head() {
global $post;
if ( !is_singular()) //if it is not a post or a page
return;
echo \'<meta property="fb:admins" content="XXXXXXX"/>\';
echo \'<meta property="og:title" content="\' . get_the_subtitle() . \'"/>\';
echo \'<meta property="og:type" content="article"/>\';
echo \'<meta property="og:url" content="\' . get_permalink() . \'"/>\';
echo \'<meta property="og:site_name" content="KERALA NEWS"/>\';
if(!has_post_thumbnail( $post->ID )) { //the post does not have featured image, use a default image
$default_image="http://www.example.com/wp-content/themes/dw-focus-master/assets/img/logo.png"; //replace this with a default image on your server or an image in your media library
echo \'<meta property="og:image" content="\' . $default_image . \'"/>\';
}
else{
$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'medium\' );
echo \'<meta property="og:image" content="\' . esc_attr( $thumbnail_src[0] ) . \'"/>\';
}
echo "
";
}
add_action( \'wp_head\', \'insert_fb_in_head\', 5 );
SO网友:Alex MacArthur
可能是在特殊挂钩之后生成了重复的开放图元标记。将优先考虑后面的标记,这意味着不会进行自定义。
稍后尝试设置钩子的顺序,以便在生成任何其他钩子之后发生:
// default is 10; I\'m using 11 arbitrarily
add_action( \'wp_head\', \'insert_fb_in_head\', 11 );
不过,更重要的是,您需要确认没有其他任何东西在生成OG。检查您的插件,并考虑在上使用,以便根据需要自定义OG数据,如完整的开放图:
https://wordpress.org/plugins/complete-open-graph/