当サイトは WordPress で運営しているのですが、特定のカテゴリを管理画面から編集できないという問題が発生しました。
WordPress 管理画面で「間違えましたか ? この項目を編集する権限がありません。」というエラーメッセージが表示されてカテゴリを編集できなかったので、MySQL データベースの値を直接更新して解決するまでの手順をご紹介します。
WordPress の管理画面から Amazon カテゴリを編集しようとしたら「間違えましたか ? この項目を編集する権限がありません。」というメッセージが表示されて、更新することができませんでした。
今回 WordPress 管理画面からカテゴリを編集できないので、データベース MySQL に保存している値を直接編集していきます。
まず、WordPress のカテゴリのデータがどこに保存されているか確認します。
WordPress はカテゴリ、タグのいずれも wp_terms テーブルに保存されているので、この値を確認していきます。
wp_terms 投稿およびリンクの分類(カテゴリ・タグ)に使われる語句の基本情報を格納
今回は、カテゴリ名 wp_terms.name が Amazon でスラッグ名 wp_terms.slug が amazon のレコードを、カテゴリ名 Amazon Web Services かつ、スラッグ名 aws へ変更するという作業をします。
mysql> SELECT * FROM wp_terms WHERE name LIKE 'aws%';
+---------+---------+---------+------------+------------+
| term_id | name | slug | term_group | term_order |
+---------+---------+---------+------------+------------+
| 375 | aws-cli | aws-cli | 0 | 0 |
| 391 | AWS | aws-2 | 0 | 0 |
+---------+---------+---------+------------+------------+
2 rows in set (0.00 sec)
SQL で確認してみると aws-2 というタグがあったので、今回の作業には直接関係ないのですが重複ページになってしまい SEO の観点で悪影響なので WordPress 管理画面から削除しました。
次に amazon という文字列を含むカテゴリ名の wp_terms レコードを確認します。
mysql> SELECT * FROM wp_terms WHERE name LIKE 'amazon%';
+---------+---------------------+---------------------+------------+------------+
| term_id | name | slug | term_group | term_order |
+---------+---------------------+---------------------+------------+------------+
| 9 | Amazon | amazon | 0 | 0 |
| 120 | Amazon EC2 | ec2 | 0 | 0 |
| 121 | Amazon S3 | s3 | 0 | 0 |
| 144 | Amazon SES | amazon-ses | 0 | 0 |
| 258 | Amazon Appstore | amazon-appstore | 0 | 0 |
| 360 | amazon s3 | amazon-s3 | 0 | 0 |
| 891 | amazon payment | amazon-payment | 0 | 0 |
+---------+---------------------+---------------------+------------+------------+
7 rows in set (0.01 sec)
prefix に amazon- が有り・無しと表記ゆれが気になりますね。これも本件とは関係ないですが別途どちらかに統一するケアをしたいと思います。
特定のカテゴリ term_id = 9 を指定して、wp_terms テーブルの値を更新します。
mysql> UPDATE wp_terms SET name = 'Amazon Web Services', slug = 'aws' WHERE term_id = 9;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
以上、WordPress のカテゴリを管理画面から編集できなくて、MySQL データベースを直接 update して解決したお話でした。