所以我有代码删除所有帖子的第一张图片(这是因为我在介绍特色图片之前在每个帖子的顶部放置了一个图像,一旦创建了特色图像,我就把代码放到位删除第一个图像,所以我不必回去手动操作)。我试图让它适用于AMP页面,但还没有弄明白。
这是普通页面的功能。
function remove_first_image ($content) {
if (!is_page() && !is_feed() && !is_feed() && !is_home()) {
$content = preg_replace("/<img[^>]+\>/i", "", $content, 1);
}
return $content;
}
add_filter('the_content', 'remove_first_image');
由于这不会删除AMP页面上的第一张图片,我尝试了类似这样的内容,其中包含一些正确的元素,但无效。
add_action( 'pre_amp_render_post', function () {
add_filter( 'the_content', function( $content ){
$content = preg_replace("/<img[^>]+\>/i", "", $content, 1);
return $content;
}, 3 );
});
有关如何使其适用于AMP内容的任何想法?
答案 0 :(得分:1)
我认为您上面列出的代码示例是与Automattic https://wordpress.org/plugins/amp/的AMP插件一起使用。
你使用的是不同的AMP插件......我看到了对wp-amp-ninja的引用。您可能必须检查其代码以查找操作和过滤器。它可能不一样......然后,如果没有正确记录,你就不会在更新中改变这一点。
您可以尝试切换到Automattic。或者,如果您使用wp-amp-ninja插件的高级版本,我发现它们在升级中提供了CSS选项。
就像我提到的那样,我认为您的代码将与Automattic插件一起使用。如果您切换到它并且没有兴趣,想要尝试使用样式而不是the_content
过滤器删除图像...也就是说,如果仍然出现2个图像...使用amp_post_template_css
操作。使用浏览器的inspect元素查找正确的css类名。 (可能是: amp-img.wp-post-image )
function wp_amp_additional_css_styles( $amp_template ) {
?>
amp-img.wp-post-image {
display: none;
}
<?php
}
add_action( 'amp_post_template_css', 'wp_amp_additional_css_styles' );