我最近创建了一个自定义短代码,其中可以包含多达35个参数。这是一个复杂的项目,所以我创建短代码的部分原因是,如果我在这样的网格中键入参数,我可以很容易地看到它们:
[shortcode paraA1=\'123\' paraB1=\'321\'
paraA2=\'234\' paraB2=\'432\'
paraA3=\'345\' paraB3=\'543\' ]
它工作得很好,除非我像上面那样连续键入它们,否则它将完全忽略顶部的,而只解析底部的。因此:
[shortcode paraA1=\'123\' paraB1=\'321\'
paraA2=\'234\' paraB2=\'432\'
paraA3=\'345\' paraB3=\'543\' ]
[shortcode paraA1=\'456\' paraB1=\'654\'
paraA2=\'567\' paraB2=\'765\'
paraA3=\'678\' paraB3=\'876\' ]
[shortcode paraA1=\'789\' paraB1=\'987\'
paraA2=\'890\' paraB2=\'098\'
paraA3=\'901\' paraB3=\'109\' ]
将进行分析,就像我只键入了以下内容一样:
[shortcode paraA1=\'789\' paraB1=\'987\'
paraA2=\'890\' paraB2=\'098\'
paraA3=\'901\' paraB3=\'109\' ]
源代码显示为前两个短代码甚至不存在。它还将忽略它们之间的任何代码。
但是,如果我在没有换行符的情况下键入它们(即全部内联),那么它将不会出现任何问题。例如:
[shortcode paraA1=\'123\' paraB1=\'321\' paraA2=\'234\' paraB2=\'432\' paraA3=\'345\' paraB3=\'543\' ]
[shortcode paraA1=\'456\' paraB1=\'654\' paraA2=\'567\' paraB2=\'765\' paraA3=\'678\' paraB3=\'876\' ]
[shortcode paraA1=\'789\' paraB1=\'987\' paraA2=\'890\' paraB2=\'098\' paraA3=\'901\' paraB3=\'109\' ]
会很好用的。
我有多个项目在进行杀戮wpautop
, 所以我很确定不是这样的。如何解决此问题,使短代码在换行时能够正确运行?
我总是只在文本编辑器中工作,而从不在可视化编辑器中工作。
最合适的回答,由SO网友:38365 整理而成
我发现有两种变通方法:
Workaround 1: 在需要换行符的地方,可以使用任意数量的非打断空格。
所以要模仿这个:
[shortcode paraA1=\'789\' paraB1=\'987\'
paraA2=\'890\' paraB2=\'098\'
paraA3=\'901\' paraB3=\'109\' ]
您可以输入:
[shortcode paraA1=\'789\' paraB1=\'987\' paraA2=\'890\' paraB2=\'098\' paraA3=\'901\' paraB3=\'109\' ]
Wordpress文本编辑器将包装文本,但不会包装空格,因此结果将完全如下所示:
[短代码paraA1=\'789\'paraB1=\'987\'
paraA2=\'890\'paraB2=\'098\'
paraA3=\'901\'paraB3=\'109\']
但每一行的末尾都有空格,如果出于某种原因需要复制和粘贴,将选中空格。这将无误地运行任意数量的连续短代码。
Workaround 2: 在每个短代码之间放置内容,例如不间断空格
.
您可以这样做:
[shortcode paraA1=\'123\' paraB1=\'321\'
paraA2=\'234\' paraB2=\'432\'
paraA3=\'345\' paraB3=\'543\' ]
[shortcode paraA1=\'456\' paraB1=\'654\'
paraA2=\'567\' paraB2=\'765\'
paraA3=\'678\' paraB3=\'876\' ]
[shortcode paraA1=\'789\' paraB1=\'987\'
paraA2=\'890\' paraB2=\'098\'
paraA3=\'901\' paraB3=\'109\' ]
它将正确解析所有的短代码。从技术上讲,这不是“连续短代码”,但在大多数情况下
不会添加任何内容显示差异。