在执行前过滤短码字符串的位置

时间:2022-02-18 作者:jcropp

任何WP函数都将$att 来自的数组[myShortcode att1="..." att2="..." ...] 字符串使用" 用于分隔数据的字符。但是 以及 字符似乎被解读为文本,而不是限定符;并将其用于替代" 可能导致短代码错误。

理论上,不应该有问题,因为 不是qwerty键盘上的字符,因此手动输入时不会遇到。然而,从使用 允许将其包含在内(对于这种情况,应该进行错误检查)。例如,页面The Beginner’s Guide to Writing Your Own Custom Shortcode 他说[helloworld name=”Bob”] 输出Hello Bob!, 但事实并非如此,因为网页的样式很可爱" 进入. 切割和粘贴[helloworld name=”Bob”] 输出Hello ”Bob”!; 和[helloworld name=”Bob Smith”] 输出Hello ”Bob!, 因为BobSmith 被读取为delimeter,数组显示[name] = "Bob 还有那个[0] = Smith.

正在执行preg_replace 在将其解析为$atts 数组似乎是防止错误的最佳方法。问题是在哪里这样做。

1 个回复
SO网友:Sébastien Serre

shortcode\\u atts\\u{$shortcode}似乎是您需要的WordPress过滤器。https://developer.wordpress.org/reference/hooks/shortcode_atts_shortcode/

它用于shortcode_atts() 功能:https://developer.wordpress.org/reference/functions/shortcode_atts/

相关推荐

SHORTCODE_ATTS()中的$ATTS参数是什么?

这个WordPress developers reference page for shortcode_atts() 国家:$atts(array)(必选)用户在shortcode标记中定义的属性。但我不理解这个定义。例如,在WP Frontend Profile 插件:$atts = shortcode_atts( [ \'role\' => \'\', ], $atts ); 据我所知,shortcode\