WordPress回复评论不起作用
我们在获取“回复”功能以在WordPress网站上发表评论时遇到了一些问题。一般情况下提交评论的工作正常,但即使我从“答复”按钮重定向到的URL看起来是正确的,但它只是将其作为普通评论发布,而评论部分上方的标题仅仅是普通标题,而不是预计“发表回复......”。这是一个自定义的主题,但它的设置是为了支持这一点,WordPress本身被配置为允许线程评论降低到默认的5个级别。WordPress回复评论不起作用
这里是有问题的网站:http//antagonist.no
有什么奇怪的是,它只是发生在真实的环境。我在本地设置了一个测试环境,其中WordPress配置了完全相同的配置和版本的模板。回复函数在那里完美工作,具有相同的URL结构和参数,并且我无法重现实时环境中正在发生的事情。
唯一的区别是宿主环境:我的本地测试环境在OS X 10.9上的Apache 2.2上运行,而实时环境在Windows Server 2008 R2上的IIS 6上运行。两者都运行PHP 5.5.8。这可能是由于永久链接的URL重写? WordPress的自动执行此操作在Apache,但在IIS环境中生活,我们使用了一种名为下ISAPI_Rewrite 3(http://www.helicontech.com/isapi_rewrite/)插件,支持URL重写,下列规则:
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1 [NC,L]
这似乎为别的做工精细比评论回复。
任何想法,我们可以检查或尝试的东西?
建议:尝试将永久链接结构更改(临时)为Default
(如果尚未)。
此过程将强制Wordpress从.htaccess
文件中删除重写代码。再次测试并恢复永久链接 - 测试,如果问题发生 - 那么这是关键。
更改重写规则如下(从WordPress抄本所)修复的问题:
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
也许你需要包括从WordPress的JavaScript的意见,因为WordPress的用它来抓取从父评论ID评论。 尝试添加到您的functions.php
function add_comment_js(){
if (!is_admin()){
if (!is_page() AND is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) {
wp_enqueue_script('comment-reply');
}
}
}
add_action('get_header', 'add_comment_js');
我会尝试这一点,但WordPress是无法写入IIS6下的.htaccess文件,因为它是由一个扩展提供的,因此任何规则需要手动输入。但是我们可以尝试暂时禁用重写模块+永久链接结构,并查看它是如何发生的。一旦我们尝试过,我会回复。 –
尝试它没有重写规则和永久链接设置为默认。现在起作用,所以它肯定是导致问题的重写规则。希望我们很快能够转向IIS7 +或Apache环境! :) –
好极了,如果我可以提出一些建议 - 最好是坚持使用'Apache',而不是'IIS',如果可能的话。 – bodi0