从“普通”文本/超链接执行快捷代码

时间:2020-04-10 作者:JoBe

是否可能从HTML中执行短代码?

例如:<a href=[shortcode]> press here</a> 当用户单击文本时,会调用短代码?

iBasicly我想调用elementors弹出窗口,而不使用奇怪的按钮,只希望用户能够单击文本以获得包含信息的弹出窗口。

我知道有一些弹出式插件有这样的选项,但是“另一个”插件是不必要的,除了没有一个弹出式插件的样式可以像elementor那样好。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

是和否

我创建了一个名为foo:

add_shortcode( \'foo\', \'fooshort\' );
function fooshort( $atts ) {
    return "https://google.com";
}
然后把这个放在帖子里:

测试[食物]

结果:

test https://google.com

所以如果我照字面理解你的问题,是的,你可以在锚属性中放置短代码。但是短代码不知道它在属性中。短代码可以生成完全破坏标记的输出,甚至可能从那时起破坏页面。

However

短代码不是魔法标记,它们实际上只是被其输出所取代they have zero awareness of their context. 这并没有阻止页面建设者滥用它们,暗示他们可以做得更多。它们只是替换,是一种在帖子内容中嵌入不能直接放入内容中的内容的方法,如嵌入代码或iframe等

因此,就功能而言,您无法对其应用任何类型的逻辑。通过在href. 无论插件构建者建议或暗示了多少,都没有适合的框架或系统。也许块编辑器中的块可以做到这一点,但不能使用短代码。

短代码是愚蠢的,它们只是短代码对内容的替代。也许你的插件使用了一些与URL无关的逻辑,而不是其他东西,祈祷吧。因此,您最好向Elementor社区询问Elementor的问题。

相关推荐

What does this shortcode do?

function my_shortcode($atts, $content = null){ extract(shortcode_atts(array(\"type\" => \"warrning\"), $atts)); return \".$content.\"; } add_shortcode(\"warrning_dialog\", \"my_shortcode\"); 我知道它会创建短代码[warning\\u dialo