[英]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.