首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含括号问题的Shortcode属性

包含括号问题的Shortcode属性
EN

Stack Overflow用户
提问于 2012-01-24 04:03:47
回答 3查看 1.7K关注 0票数 4

Shortcode API声明属性中不能有方括号。因此,以下内容将不起作用:

代码语言:javascript
复制
[tag attribute="[Some value]"]

在我的例子中,方括号是必需的。绕过这个问题的最佳解决方案是什么?我已经尝试在我的短码函数中对内容进行转义,但没有成功。

我使用的是WordPress 3.3.1。

EN

回答 3

Stack Overflow用户

发布于 2012-01-24 04:08:31

在您的短码中使用一些其他特殊字符,并在短码函数中将其替换为方括号。-既然这不是你想要的,这里有一个替代方案。

这似乎是我能想到的唯一适用于您的情况,而不是依赖于短码API,您可以在内容上使用"apply_filters“,然后使用preg_replace来编写您自己的短码处理函数。

票数 1
EN

Stack Overflow用户

发布于 2012-01-24 04:13:44

如果括号作为生成的超文本标记语言的一部分出现,请尝试使用&#...;或作为网址的一部分,使用%...

否则,如果它涉及到您自己的短码,只需在短码的代码中替换一些其他字符,例如用[]替换{}

如果不是你自己的短码,你可以修改plugin / core。为了不破坏更新,我会编写一个包装器代码。

票数 0
EN

Stack Overflow用户

发布于 2014-10-28 18:53:22

我们将json存储在短码属性中。我们决定使用base64_encode来隐藏方括号,但我们遇到了一些问题:

当您想要在数据库中进行一些替换时,

  • Themecheck抱怨base64函数
  • ,例如,用新站点url替换所有旧站点url,正则表达式无法看到base64编码的字符串

中的内容

还有另一种解决方案,使用htmlentities

代码语言:javascript
复制
function encode($str) {
    $str = htmlentities($str, ENT_QUOTES, 'UTF-8');

    // http://www.degraeve.com/reference/specialcharacters.php
    $special = array(
        '[' => '[',
        ']' => ']',
    );
    $str = str_replace(array_keys($special), array_values($special), $str);

    return $str;
}

function decode($str) {
    return html_entity_decode($str, ENT_QUOTES, 'UTF-8');
}

$original = '[1,2,3,"&",{a:1,b:2,"c":"Результат"}]';
$encoded  = encode($original);
$decoded  = decode($encoded);

echo "Original:\t", $original, PHP_EOL;
echo "Shortcode:\t", '[hi abc="'. $encoded .'"]', PHP_EOL;
echo "Decoded:\t", $decoded, PHP_EOL;
echo "Equal:\t\t", ($original === $decoded) ? 'YES' : 'NO';

输出

代码语言:javascript
复制
Original:   [1,2,3,"&",{a:1,b:2,"c":"Результат"}]
Shortcode:  [hi abc="[1,2,3,"&",{a:1,b:2,"c":"Результат"}]"]
Decoded:    [1,2,3,"&",{a:1,b:2,"c":"Результат"}]
Equal:      YES

http://ideone.com/fNiOkD

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8977838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档