2017年9月29日金曜日

WordpressでPluginの「新規追加」が表示されない

Wordpress 4 でプラグインの「新規追加」ボタンが表示されない。色々、ググっても的外ればかりで、結局、自己解決したので、メモっておく。


筆者がWordpressを始めたのはかなり前で、プラグインのインストールといえば、プラグインのサイトから、ファイルをダウンロードし、自サイトにFTPして、起動させていた。

自サイトだけでなく、他のサイトも管理しており、新規インストールも行なっていると、何か、管理画面が違う。今や、プラグインはプラグインのホームページから追加できるのである。他のCMS、JoomlaやDrupalもそうなっているので、驚くには当たらない。

また、自サイトでは、一度作ってしまうと、プラグインの入れ替えなどもたまにしか行わないので、まさか、自サイトで「新規追加」ができないとは、思ってもいなかった。


ググってみると、以下のような記載が多かった。

問題の特定

同じサーバーにWordpressをクリーンインストールすると、正しく「新規追加」は表示さているので、ファイルシステムの問題ではない。

プラグインを全部止めてみたが、やはり治らない。

となると、ユーザーの権限が怪しいが、管理者権限自体を変更できる管理ページはない。ちなみに、権限は、データベースの"XXX_options"テーブル(XXX_はサフィックスで、サイトによって違います)の"option_name"フィールドが「XXX_user_roles」のレコードに権限の内容が書かれています。

このレコードの”option_value”フィールドの値をまっさらでインストールしたWordpressとアップデートを続けた自サイトのものを比較すると、以下の項目がないことがわかりました。
s:15:"install_plugins";
s:14:"install_themes";
BINGO! そういえば、確かに、テーマにも「新規追加」ボタンがありません。
この値は、シリアライズされているので、十分に気をつけてください。

手順

  1. phpMyAdminなどで、上記のテーブルを探し、該当する、レコードを見つける。
  2. option_valueの値をコピーして、保存しておく。(うまくいかなかった時に戻せるように)
  3. 管理者の権限の記述を探す
    a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:59:{

    日本語化している場合
    a:5:{s:13:"administrator";a:2:{s:4:"name";s:27:"管理人 - (Administrator)";s:12:"capabilities";a:59:{s 
  4. 上記では「59」項目あるので、1つ増やす場合は、「60」に替える
  5. delete_pluginの後ろあたりに、install_plugins を追加する。
    b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";

  6. 保存して、管理画面を確認する。
うまくいかない場合、保存しておいたデータに戻す。あくまで自己責任で行ってください。

まとめ

  • 最新のワードプレスではプラグインやテーマがインターネット経由でインスールできるが、更新を続けたワードプレスでは、できないことがあるようだ。
  • 原因は管理者権限の設定が、アップグレードで変更されないためと思われる。
  • ここでは、データベースのデータを直接変更して、修正を行った。

0 件のコメント: