解决 WP 不能删除分类的问题

在老帕的 Blog 上看到他说“分类名称居然编辑不了”,我没有问具体情况,但大概猜是怎么回事,因为我两个星期前刚升级 WP 2.3 的时候也遇到了这个问题。事实上除了分类名称编辑不了,分类也无法被删除,甚至在 comment 管理模式下,也不法对评论作任何操作 (spam/delete/edit)。无论怎么,WP 都会说 “You don’t have permission to do that“,尽管我已经以管理员的身份操作。本质上说,只要操作是 Ajax 效果的,就会产生以上的后果。

解决办法:

一、使用一个名为 AJAX Referer Fix 的插件,激活后就自动纠正该问题。 二、如果上面的插件解决不了问题(比如我的情况就不行),就稍微麻烦一点了。需要修改一个文件,把 wp-includes/pluggable.php 的第 358-364 改上一改。

改之前: > $cookie = explode('; ', urldecode(empty($POST['cookie']) ? $GET['cookie'] : $_POST['cookie'])); // AJAX scripts must pass cookie=document.cookie

  foreach ( $cookie as $tasty ) {
          if ( false !== strpos($tasty, USER_COOKIE) )
                  $user = substr(strstr($tasty, '='), 1);
          if ( false !== strpos($tasty, PASS_COOKIE) )
                  $pass = substr(strstr($tasty, '='), 1);
  }</code>

改之后: < $user = $COOKIE[USERCOOKIE]; < $pass = $COOKIE[PASSCOOKIE];

如此一来,大功告成。

参考: http://trac.wordpress.org/ticket/3807 http://sparepencil.com/code/ajax-referer-fix/

Tags: ,