升级后订阅者成为作者?/用户的批量更新?

时间:2010-10-28 作者:Bee

我有一个拥有约3万用户的网站,绝大多数都有角色\'subscriber\' 在主博客上。从WPMU 2.9.2升级到WordPress 3.0.1后,我注意到所有30万用户都出现在主博客的“作者”下拉列表中post-new.php. (好吧,如果它能够在不破坏浏览器的情况下加载…)

澄清一下:所有用户都仍然拥有订阅者级别的访问权限,但都包含在“作者”下拉列表中。

在我深入到/wp-admin/, 还有其他人看到过吗?有人知道这种行为是否是WordPress中的故意改变吗?

谢谢Bethany

1 个回复
SO网友:MikeSchinkel

你好@Bee:

我不知道为什么会这样。但如果我正确理解您的问题,您需要将这些用户记录设置回\'subscriber\' 而不是\'author\', 正当

通常情况下,我不建议像这样直接进行SQL更新,但考虑到问题的性质以及它是一次性的,我认为这是可以的。

但是first BACK UP YOUR DATABASE 在你尝试这些之前。

以下是根据我所知的WordPress内部结构以及基于this support question (假设主表的前缀为\'wp\' 并假设您可以将分配给的所有用户设置为\'author\' 返回订阅服务器,并使用WordPress管理控制台手动进行任何更正。)因此,如果您知道如何从SQL查询工具运行此SQL,请尝试:

UPDATE 
  wp_usermeta 
SET 
  meta_value=\'a:1:{s:10:"subscriber";s:1:"1";}\'
WHERE 1=1
  AND meta_key=\'wp_capabilities\' 
  AND meta_value LIKE \'%author%\'
如果您不习惯从查询工具运行SQL,那么可以将其放到网站的根目录中(称之为/update-users.php ,然后通过调用URL来运行它http://example.com/update-users.php 从浏览器中(替换http://example.com 当然,使用您的实际站点域):

<?php
include "wp-load.php";
global $wpdb;
$sql =<<<SQL
UDPATE
  wp_usermeta
SET
  meta_value=\'a:1:{s:10:"subscriber";s:1:"1";}\'
WHERE 1=1
  AND meta_key=\'wp_capabilities\'
  AND meta_value LIKE \'%author%\'
SQL;
$wpdb->query($sql);
echo \'Done!\';
请向我们报告您的成功情况,或者如果您需要更多帮助。

结束

相关推荐

Updates for a private plugin?

如果我写一个私有插件,有没有办法使用WordPress自动更新机制来更新它 我想封装这个功能,但它是我自己的5个博客特有的,所以它不是公共插件资源的好候选。但我喜欢这种简单的更新机制 有没有办法做到这一点