我正在一个网站上工作,试图修复他们如何设置元标签,但遇到了一些麻烦。
当前的设置方式是将所有页面的og:image设置为徽标。我想要两种帖子类型(post-1和post-2)来显示它们各自通过ACF包含的图像。
请参见下面的外观。
<?php
function insert_fb_in_head() {
global $post;
if ( !is_singular())
return;
echo \'<meta property="og:title" content="\' . get_the_title() . \'"/>\';
echo \'<meta property="og:type" content="article"/>\';
echo \'<meta property="og:url" content="\' . get_permalink() . \'"/>\';
echo \'<meta property="og:site_name" content="NewWays"/>\';
if(!has_post_thumbnail( $post->ID )) {
$default_image="https://logoURLgoeshere";
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 );
?>
他们在“is\\u singular”和“has\\u post\\u thumbnail”中用感叹号进行设置,网站上的每个页面最终都会得到为meta编写的代码。
对于非post-1和post-2页面,我可以使用它,但是如何添加另一个if语句来将图像作为og:image的元来编写呢?
我试图添加这个,但没有帮助。有人有什么想法吗?
function insert_og_image() {
if ( is_singular( \'post-1\', \'post-2\'))
$featuredImage = get_field(\'image\');
echo \'<meta property="og:image" content="\' . $featuredImage . \'"/>\';
}
SO网友:Will Ashworth
试试这个。我在条件的外部检查您想要的情况,然后像以前一样退回到其他(旧)行为。这是站点范围内其他地方发生问题的可能性最小的,同时也考虑到了您的特殊情况。
<?php
function insert_fb_in_head() {
global $post;
if ( !is_singular())
return;
echo \'<meta property="og:title" content="\' . get_the_title() . \'"/>\';
echo \'<meta property="og:type" content="article"/>\';
echo \'<meta property="og:url" content="\' . get_permalink() . \'"/>\';
echo \'<meta property="og:site_name" content="NewWays"/>\';
if(is_singular(array(\'post-1\', \'post-2\'))) {
$featuredImage = get_field(\'image\');
echo \'<meta property="og:image" content="\' . $featuredImage . \'"/>\';
}else{
if(!has_post_thumbnail( $post->ID )) {
$default_image="https://logoURLgoeshere";
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 );
希望这有帮助。祝你好运!