插入具有PREG_REPLACE-奇怪行为的字段

时间:2014-09-05 作者:Garland Briggs

我正在尝试插入一个自定义字段(来自高级自定义字段插件),我需要将其放置在一个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\');

1 个回复
最合适的回答,由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 打印值。

结束

相关推荐

Single-Custom.php上的WP_Query分页

我想做什么:设置WP_Query 在单个自定义帖子类型中分页。php模板文件我所做的工作创建了一个名为“作者”的帖子类型。该帖子类型中的每个帖子都是一个作者。2) 标准的编辑帖子屏幕页面包含一个下拉列表,其中列出了作者自定义帖子类型中的所有帖子(作者)。3) 创建了单个作者。php模板,该模板使用下拉列表中的作者元数据查询所有帖子,因此结果是一个具有相同作者的帖子列表(有点像存档):<?php // set the \"paged\" parameter (use \'page\'

插入具有PREG_REPLACE-奇怪行为的字段 - 小码农CODE - 行之有效找到问题解决它

插入具有PREG_REPLACE-奇怪行为的字段

时间:2014-09-05 作者:Garland Briggs

我正在尝试插入一个自定义字段(来自高级自定义字段插件),我需要将其放置在一个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\');

1 个回复
最合适的回答,由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 打印值。

相关推荐

在循环外部调用is_Single()

所需的文件不会加载到单个帖子上,也不会加载到任何地方!如果我删除is_single() 功能我可以让它工作。我的问题是如何检查当前页面是否为帖子?我看了其他问题,看起来我调用的是循环外的函数,但无论我在这些答案中尝试什么都不起作用!!你会怎么处理?谢谢class Something { function my_func() { if ( is_single() ) { require_once( \'/lib/control