【问题标题】:wordpress set cookie in shortcodewordpress 在简码中设置 cookie
【发布时间】:2016-05-25 17:05:47
【问题描述】:

我正在编写一个 wordpress 插件,其中有一个简码。此简码生成并处理表单。提交表单时,会在 cookie 中存储一个值:

$result = setCookie('cookieName','cookieValue');

Result 然后返回 false,表示未设置 cookie。这并不奇怪,因为在执行短代码时已经发送了标头。我正在寻找解决这个问题的方法。

我在这里发现了多个类似的问题。大多数答案是:早点设置 cookie,但这对我来说不是一个真正的选择。

我唯一能想到的就是输出缓冲所有内容,但我不确定在 wordpress 中执行此操作的正确方法是什么(哪些钩子,如何保持与其他插件的兼容性等)。我也想知道是否有内置的解决方案,因为在我看来,我不会是唯一遇到这个问题的人。

【问题讨论】:

    标签: php wordpress cookies http-headers shortcode


    【解决方案1】:

    是的,WP 的设计不允许这样做。如果不适合使用像“init”这样的早期操作,我唯一能想到的另一件事就是进行 AJAX 调用,在回调中使用 setcookie 就可以了,javascript 也可以直接设置 cookie。

    如果你绝对需要在短代码的回调中计算这个,那么也许你可以先在 $_SESSION 中存储一些东西,或者一个隐藏的表单,或者数据属性,然后把它放到一个 cookie 中(使用 'init' 操作,或者将值传递给 javascript 并使用它来创建 cookie)

    【讨论】:

      【解决方案2】:

      我刚刚为另一个问题写了一个答案,我希望这可以最好地定义如何以及在何处编写您想在短代码中使用的 cookie。

      need the right way to setcookie in wordpress

      【讨论】:

        猜你喜欢
        • 2016-03-29
        • 2012-08-01
        • 2016-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多