[wp-hackers] Remove useless usermeta
Mike Schinkel
mikeschinkel at newclarity.net
Fri Oct 8 03:20:26 UTC 2010
On Oct 7, 2010, at 10:29 PM, Alex Hempton-Smith wrote:
> Is there an easy way I can remove useless user meta from the wp_usermeta
> table, and stop it from being put there for new signups?
>
> Almost all of our users have no need for data like 'rich_editing',
> 'comment_shortcuts', 'admin_color', 'aim', 'yim' or 'jabber'.
>
> I've already disabled the 'aim', 'yim' and 'jabber' contact fields, so these
> aren't being created now. However, I think WordPress should only create the
> other mentioned fields if the user has the capability to edit posts or
> moderate comments. It's creating two unnecessary usermeta entries for each
> user.
>
> In the meantime, is there a filter I can use to stop this usermeta from
> being created at user creation? And then perhaps only be set if the user
> explicitly sets that option in the admin panel?
This SQL will get rid of them using this SQL:
DELETE FROM wp_usermeta
WHERE AND meta_key IN ('rich_editing','comment_shortcuts', 'admin_color', 'aim', 'yim', 'jabber')
AND TRIM(IFNULL(meta_value,''))=''
Then you can either "update_user_meta" to delete right after inserted (since there is not a direct way to abort the insert) or you can try the "query" hook using regular expressions to match the appropriate replace "INSERT {$wpdb->usermeta} SET..." queries with something benign like "SELECT 0".
Hope this helps.
-Mike
More information about the wp-hackers
mailing list