WordPress AJAX调用没有正确检测语言?

时间:2013-09-19 作者:Eric Holmes

我有一个WordPress multisite,它是英文和法文的。在法国网站上,本地化效果很好(使用date_l18n() 日期,以及__(), 其余部分)。

然而,当AJAX调用发送到WP并返回数据(从初始页面加载和AJAX调用相同的呈现函数)时,它们返回的是英文日期值。

Example: 日期档案显示“2013年9月”。单击“下个月”按钮,它将发送到AJAX并返回新的月份标题和文章列表。它返回的是“2013年10月”,而不是“2013年10月”。

这是一个已知的bug,还是我应该将其提交跟踪?

function render_event_archive_month_header( $date = null, $echo = true ) {
    $date_str = strtotime( $date );

    if( ! $echo )
        ob_start();

    <?php echo date_i18n(\'F Y\', $date_str ); ?>

    <?php
    if( ! $echo ) {
        $data = ob_get_contents();
        ob_end_clean();
        return $data;
    }
}
这将传递一个yyyy-mm-dd日期值,如下所示

render_event_archive_month_header( \'2013-10\' );
在我的Ajax操作回调中。

1 个回复
SO网友:Eric Holmes

谢谢你对托肖的帮助!睡了一夜之后,这个问题其实很明显。我正在使用WP Native Dashboard。如果您不知道这是什么,它允许您更改网站管理部分的语言。

考虑到WP-Ajax被认为是admin,它正在改变语言。一旦我注销,或将后端语言更改为FR,它就会按预期工作。

我会将此作为bug报告给插件作者。

结束

相关推荐

为什么管理员AJAX要重新加载我的页面

据我所知,我的代码中没有使用过Ajax。然而,在调试时,我遇到了使用“admin ajax”的断点。调用堆栈的根。我的断点的第二次命中发生在原始断点之后的10到30秒之间。奇怪的是,到目前为止还没有HTML输出,所以浏览器中没有脚本。你知道为什么会发生这种情况,为什么我的php脚本会被调用两次吗?