可能是通过Jetpack,但我不确定
现在看看你的网站,我可以说那些打开的图形标签来自Jetpack
插件。
如果帖子中没有可用图像,Jetpack会添加站点图标/图标作为默认图标。
我们可以使用过滤器控制标签的输出
jetpack_open_graph_tags
jetpack_images_get_images
jetpack_open_graph_image_default
jetpack_enable_open_graph
仅删除og:图像
将以下代码放入functions.php
活动主题的。
function wpse_228649_remove_image_tag( $tags ) {
unset( $tags[\'og:image\'] );
return $tags;
}
add_filter( \'jetpack_open_graph_tags\', \'wpse_228649_remove_image_tag\' );
声明发件人
Jetpack blog Jetpack从寻找特色图像开始。如果您没有定义任何内容,我们将查找幻灯片和图库,然后查找可能附加到帖子的任何图像。如果我们没有找到任何附加到该帖子的图像,我们将查找您可能已插入该帖子的单个图像。如果您插入了托管在其他网站上的图像,我们也可以使用它。
然而,有时您可能没有在帖子中添加任何图像。在这种情况下,我们可以使用以下代码设置默认图像。
function wpse_203094_custom_image( $media, $post_id, $args ) {
if ( $media ) {
return $media;
} else {
$permalink = get_permalink( $post_id );
$url = \'YOUR_CUSTOM_DEFAULT_IMAGE_URL\' ;
return array( array(
\'type\' => \'image\',
\'from\' => \'custom_fallback\',
\'src\' => esc_url( $url ),
\'href\' => $permalink,
) );
}
}
add_filter( \'jetpack_images_get_images\', \'wpse_203094_custom_image\', 10, 3 );
也可以使用过滤器更改默认值。
function wpse_203094_jetpack_default_image() {
return \'YOUR_IMAGE_URL\';
}
add_filter( \'jetpack_open_graph_image_default\', \'wpse_203094_jetpack_default_image\' );
或者,您可以使用以下方法完全禁用它们:
add_filter( \'jetpack_enable_open_graph\', \'__return_false\' );
注释如下
@cjbj 指出一些插件
Yoast SEO
可以覆盖打开的图形标记。上述过滤器/代码仅适用于
Jetpack
假设没有其他插件覆盖它们。
更新
是否有任何解决方案允许我阻止og:仅用于favicon的图像标签
是的,我们可以使用jetpack_images_get_images
滤器如果我们看看jetpack_og_get_image
src我们可以发现它添加了如下核心站点图标
// Third fall back, Core Site Icon. Added in WP 4.3.
if ( empty( $image ) && ( function_exists( \'has_site_icon\') && has_site_icon() ) ) {
$image[\'src\'] = get_site_icon_url( 512 );
$image[\'width\'] = \'512\';
$image[\'height\'] = \'512\';
}
最后默认为如下空白图像
// Finally fall back, blank image
if ( empty( $image ) ) {
/**
* Filter the default Open Graph Image tag, used when no Image can be found in a post.
*
* @since 3.0.0
*
* @param string $str Default Image URL.
*/
$image[\'src\'] = apply_filters( \'jetpack_open_graph_image_default\', \'https://s0.wp.com/i/blank.jpg\' );
}
以便让Jetpack假设它已经有了图像,并且没有必要使用
site icon
, 我们需要树立一些形象。这可以使用以下代码完成。将此放入
functions.php
活动主题的。
function wpse_203094_no_site_icon( $media, $post_id, $args ) {
if ( $media ) {
return $media;
} else {
return array( array(
\'src\' => \'\' // here we are conning Jetpack, Hurray!
) );
}
}
add_filter( \'jetpack_images_get_images\', \'wpse_203094_no_site_icon\', 10, 3 );