wordpress

[WordPress]管理者権限なのに『もっと高いレベルの権限が必要です』と言われてカテゴリorタグが編集できない件

[WordPress]管理者権限なのに『もっと高いレベルの権限が必要です』と言われてカテゴリorタグが編集できない件

こんにちは、みぞれ(@xxmiz0rexx)です。前回に引き続き他社ブログからWordPressへの移転のお仕事をしていますが、また問題にぶち当たったので日本語記事も皆無だったし同じことで困るかもしれない未来の誰かのために残します。

突然の問題発生

それは他社ブログからの記事をインポートし、カテゴリの整理をしていた時のことでした。

WordPress「もっと高いレベルの権限が必要です。」

WordPress「もっと高いレベルの権限が必要です。」
管理者権限の私「えっ」

自分が最高権限者だと思っていたけど、さらに上がいる…だと…??と謎がいっぱいだったので、愚痴Tweetをしたところ、フォロワーさんから参考になりそうな記事を2つ教えていただきました。

英語の参考記事

追記(2020/7/28)

『公開に失敗しました。入力されたタームを割り当てる権限がありません。』というエラー文もこの問題のせいでした。

この問題の原因

おそらくですが、移転のためにデータをインポートした際、他社ブログではカテゴリとタグが同slugでも問題なかったのに、WordPressだと想定外のエラーになってしまうため、ワケのわからないエラー文を吐くのではないかって感じです。

ほんとはたぶん『同じslugがタグにもあるから編集できないよ!』って事を言いたいんだと思います。人間にもあるよね、こういうこと(何)

解決の手順

前述した英語記事にあった解決法で無事解決しましたので日本語で残しておきます。データベース触るので自己責任&バックアップは必ずとってからやってくださいね。

一応宣言しておくと、私は不要なカテゴリをタグに変換し、該当記事すべてにそのタグをつけてから、いらなくなったカテゴリを消すためにこの操作をしましたので、そういった視点の書き方になってしまってると思います。逆の方はもうひと手間(記事の一括カテゴリ付けとか)いるかも。

  1. phpMyAdminで『wp_terms』テーブルに移動
  2. 同じ名前&異なるslugで新規追加
  3. ダッシュボードで編集不可なカテゴリのIDを確認
  4. 元のterm_idを新しいterm_idに書き換える
  5. おわり

1.phpMyAdminで『wp_terms』テーブルに移動

まずはデータベースにアクセスします。
するとサイドバーにテーブル一覧があるので『wp_terms』のテーブルに移動しましょう。

2.同じ名前&異なるslugで新規追加

メインカラムの上部に『挿入』タブがあるので移動し、権限がうんぬんで操作できなかったカテゴリと同じ名前&異なるslugで新規追加してみましょう。

ここではサンプルとして記事広告という名前でadというslugを追加してみます。

実行すると画面が切り替わり、IDが割り振られたことが分かります。

このIDを覚えておいてください。この見本の場合は266でした。

3.ダッシュボードで編集不可なカテゴリのIDを確認

カテゴリ一覧ページに行ってマウスカーソルを合わせるとブラウザ下部にURLが出るのですが、その中に書いてあるIDを覚えておきましょう。この見本の場合は102って書いてあります。

4.『wp_term_taxonomy』テーブルで元のterm_idを新しいterm_idに書き換える

さて、準備が整いました。
この見本の場合でいうと、新しいIDが266で古いIDが102です。

サイドバーから『wp_term_taxonomy』テーブルに移動し、term_idが古いIDの行(この見本の場合は102)を探し、『編集』をクリックします。

term_idを新しいID(この見本の場合は266)に書き換え、実行します。

5.おわり

ダッシュボードのタグ一覧ページを見に行ってみると記事広告という名前のタグがadというslugに書き換わっています。カテゴリの方は元のままのslugになってますので、これで分離してくれました😭✨タグに紐付いていた記事もちゃんとそのまま!

あとは不要になったカテゴリを消すだけ!(記事の移動を行う場合は行ってから)

さいごに

というわけで、ややこしい上にかなりリスキーな作業をしないと思い描いた結果を手に入れることができませんでした。疲れた。。。

最後に注意点ですが、知識のない方がデータベースを触るのは非常に危険なことなので、不安だなと思ったらプロに頼みましょうね。…たとえば私とかσ(゚∀゚)笑
以上、みぞれでした!