【问题标题】:How to add stripslashes to get_option()如何将带斜杠添加到 get_option()
【发布时间】:2015-06-16 05:56:13
【问题描述】:

嗨,我使用很多自定义选项创建了一个 WordPress 主题。在将选项保存在后端的同时,我在需要转义的字符之前添加了反斜杠。比如'和"。

现在我需要先删除它们,然后再将它们显示在前端。最简单的方法是stripslashes(get_option($key))。但这意味着我必须浏览整个主题并手动更改所有get_option()

有没有办法给get_option()添加过滤器?

如果没有,有没有办法通过查找/替换来实现这一点(我正在使用允许正则表达式的 Sublime Text 3)?

【问题讨论】:

    标签: regex wordpress wordpress-theming sublimetext stripslashes


    【解决方案1】:

    为什么不创建自己的函数来代替get_option()(但它会利用它)?例如,您可以在 functions.php 中定义以下内容:

    function my_stripslashes_function($option, $default = false) {
        return stripslashes( get_option($option, $default) );
    }
    

    然后使用 Sublime 将所有 get_option 实例替换为 my_stripslashes_function...不需要正则表达式,而且更干。

    【讨论】:

    • 好吧,现在我不得不说我觉得自己有点愚蠢。这当然是一个很好的解决方案!非常感谢!
    【解决方案2】:

    是的,在 Sublime Text 中,您可以使用正则表达式来实现它:

    查找:get_option\((.[^)]*)\)
    替换为:stripslashes(get_option($1))

    如果您需要自己调试正则表达式,这里是一个有用的工具:https://regex101.com/r/rY7oG6/2

    【讨论】:

    • 非常感谢您的回答!但是现在它选择了很多我不想被选中的东西。例如:if(get_option($id,'')==$o){$selected='selected';}选择get_option($id,'')==$o)(但我只想要get_option($id,'')
    • 谢谢!但是现在我还有一个问题要处理:if(get_option('the_key'.qtranxf_getLanguage(),'')=='hello'){
    • 哈哈,我想这行不通。正则表达式捕获( 和第一个) 之间的所有内容。我不知道任何 reqex 可以找到正确的 )。我想你不能用正则表达式解决这个问题。
    猜你喜欢
    • 2012-03-31
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多