我创建了一个函数,它将所有图像标记包装在一个div中,但我只想将其应用于帖子,但我的函数也将页面图像包装在一个div中。
// Wrap img into div
function wrapDivToImage($content) {
$pattern = \'/(<img([^>]*)>)/i\';
$replacement = \'<div class="well text-center">$1</div>\';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}
add_filter(\'the_content\', \'wrapDivToImage\');
我的第二个问题是,如果图像标记具有属性,如何停止将div包装到图像标记
id="nowrap" 甚至是一个帖子?
SO网友:Roope
您拥有全球WP_Post
对象可用,因此您可以如下所示查看帖子类型:
function wrap_post_images_to_div( $content ) {
if ( get_post()->post_type === \'post\' ) {
$pattern = \'/(<img([^>]*)>)/i\';
$replacement = \'<div class="well text-center">$1</div>\';
$content = preg_replace( $pattern, $replacement, $content );
}
return $content;
}
add_filter( \'the_content\', \'wrap_post_images_to_div\' );
您可以使用
preg_replace_callback
而是从匹配项中筛选具有特定ID的匹配项。