我正在尝试插入一个自定义字段(来自高级自定义字段插件),我需要将其放置在一个div中,该div是围绕img包装的,就在img标记之前。
所以基本上这就是我想要的结果(我使用the_field(\'description\')
这里是为了让它更干净):
<div class="the-content">
<div class="owl-wrapper">
<div class="owl-item">
[ the content from the_field() ]
<img src"http://imagesource">
</div>
</div>
</div>
但事实就是这样:
<div class="the-content">
[ the content from the_field() ]
<div class="owl-wrapper">
<div class="owl-item">
<img src"http://imagesource">
</div>
</div>
</div>
也就是说,字段中的内容插入到顶部,而不是我放置的div中。这不是很奇怪吗?
这是我的代码:
function wrapImagesInDiv($content) {
if ( in_category( \'projects\' ) ) {
$pattern = \'/(<img[^>]*class=\\"([^>]*?)\\"[^>]*>)/i\';
$replacement = \'
<div class="owl-wrapper">
<div class="owl-item $2">
\'.the_field(\'description\').\'
$1
</div>
</div>\';
$content = preg_replace($pattern, $replacement, $content);
}
return $content;
}
add_filter(\'the_content\', \'wrapImagesInDiv\');
最合适的回答,由SO网友:Nilambar Sharma 整理而成
您需要使用get_field
此处函数,而不是the_field
.
function wrapImagesInDiv($content) {
if ( in_category( \'projects\' ) ) {
$pattern = \'/(<img[^>]*class=\\"([^>]*?)\\"[^>]*>)/i\';
$replacement = \'
<div class="owl-wrapper">
<div class="owl-item $2">
\'.get_field(\'description\').\'
$1
</div>
</div>\';
$content = preg_replace($pattern, $replacement, $content);
}
return $content;
}
add_filter(\'the_content\', \'wrapImagesInDiv\');
功能
get_field
返回值,但
the_field
打印值。