短代码将<img>等超文本标记语言

时间:2018-01-10 作者:The WP Intermediate

$atts = shortcode_atts( array(

        \'path\' => \'https://s.w.org/about/images/logos/wordpress-logo-simplified-rgb.png\'

    ), $atts);
以上是短代码的一部分。在Wordpress文本编辑器中,此短代码如下所示→

[theimg  path=""]
倒逗号需要有这个的图像URL→

[theimg路径=”;https://geordiebiker.files.wordpress.com/2011/10/audrey-marnay-longchamp-commando-drive-side.jpg";]

问题:

当我们在文本编辑器的视觉模式下,将图像URL放在那些逗号中时,它实际上会提取图像,而不是URL。我做了一个gif to explain this.

我相信这个缺失的清理,如esc\\U url等,但我不知道确切的修复方法。

Update:如果我只在短代码中输入URL,编辑器会添加<img src=""> 标签?

P、 S。→ 该图像超过2MB,无法在此上载。

2018年1月11日更新

$output = \'<div class="someclasss">\';

        $output .= \'<img class="someclass1" src="\'.$atts[\'simg\'].\'" alt="\' .$caption. \'" >\';

    $output .= \'<i class="fa fa-expand" aria-hidden="true"></i>\';

$output .= \'</div>\';

return $output;
在浏览器中渲染输出的上述方式。

最后,在浏览器中,它将显示如下:

<img src="<img src="http://www.qygjxz.com/data/out/84/6074239-free-image.jpg" />">
我们有没有办法确保src="\'.$atts[\'path\'].\'" 本部分:

.$atts[\'simg\'].
只获取URL并删除所有内容?

1 个回复
SO网友:Johansson

此行为很可能是故意的,可以禁用。然而,它也可能破坏其他功能。有几个变通方法,你可以试试。

断开图像URL和文件名,可以通过以下方式将参数传递给快捷码:

[theimg 
    path="https://s.w.org/about/images/logos/" 
    filename="wordpress-logo-simplified-rgb.png"
]
这将阻止编辑器解析URL,但您可以获取这些值并将它们放在PHP代码中。

使用preg_match()

那么,编辑器会将URL转换为完整的HTML图像吗?好吧,让他做吧。在编辑器将完整图像传递给快捷代码后,我们可以使用preg_match 在我们的PHP代码中提取URL:

preg_match( \'@src="([^"]+)"@\' , $img, $match );
这将分析$img 内容并返回src<img> 标签

结束

相关推荐

PHP通知:未识别的索引

创建自定义帖子类型的新帖子时debug.log 充满了PHP Notice: Unidentified index: 每个元字段的警告。这个问题以前已经问过并回答过了here 我在那里实现了解决方案,但每次我创建这种类型的新帖子时,我仍然会看到debug.log.save方法的代码如下:/** Listener for saving post */ public function save() { $post_type_name = $this->post_type_name