繁体   English   中英

在Wordpress中显示图像后添加图像URL

[英]Adding Image URL after displaying the Image in Wordpress

我正在尝试在Wordpress上主要内容中的每个图像之后显示图像的URL。 为此,我正在构建一个插件。

如果在我的插件中添加以下代码,则可以显示2张相同的图片。 因为显示图片的代码存储在下面的$ 1中。

$content = preg_replace("/(<img([^>]*)>)/i",
    "<div class=\"image_wrap\">$1<div class=\"linkbox\">" .
    "$1</div></div>", $content );

从理论上讲,我需要做的是在上述代码中的$ 1的第二个实例处进行破解以剥离图像src。 因此,下面是我尝试过的代码,它使用了一些substr和strpos函数,但这似乎并不适合我。

$content = preg_replace("/(<img([^>]*)>)/i",
    "<div class=\"image_wrap\">$1<div class=\"linkbox\">" . 
     substr(substr("$1", strpos("$1","src=\"")+5), 0,strpos(substr("$1",strpos("$1","src=\"")+5),"\"")) .
</div></div>", $content );

这有什么明显的错误吗?

谢谢

手册中有preg_replace_callback示例。 通常是这样的:

$content = preg_replace_callback(
      "/(<img([^>]*)>)/i",
      "cb_image_wrap",
      $content
);

function cb_image_wrap($match) {

    list($all, $img, $attr) = $match;

    return
       "<div class=\"image_wrap\">$img<div class=\"linkbox\">" . 
       substr(substr("$img", strpos("$img","src=\"")+5), 0,
       strpos(substr("$img",strpos("$img","src=\"")+5),"\"")) .
       "</div></div>";
}

您的字符串修补代码似乎不必要地复杂。

研究HEREDOC字符串也可能是适当的。

这是我在上面的评论中感谢Mario最终找到的解决方案

$content = preg_replace_callback(
        '/(<img([^>]*)>)/i',
        create_function(
            '$matches',
            'return CREDIT_HEAD . 
             "<div class=\"image_wrap\">$matches[0]<div class=\"linkbox\">" . 
                        substr(substr("$matches[0]", strpos("$matches[0]","src=\"")+5), 0,strpos(substr("$matches[0]", strpos("$matches[0]","src=\"")+5),"\"")) .
                    "</div></div>" . 
                    CREDIT_FOOT;'
        ),
        $content);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM