【WordPress】Plugin Notesでリンクボタンが動作しないものがある

  • 投稿 : 2018-10-11

Plugin Notes

Allows you to add notes to plugins.

WordPress.org

プラグイン一覧の画面で、プラグイン毎にメモを残せるプラグインです。

不具合の現象

plugin-notes-fix01.png

プラグイン名が日本語のものだけ、「Edit note」などのリンクボタンが動作しないというものです。初めは、動作するものとしないものがあって、おかしいなぁと思ってたんですが今回しらべて「日本語名」だけというのがわかりました。

昔は、プラグイン名はすべて英語表示だった気がします。

解決方法

function _get_plugin_safe_name ( $name ) {
  return sanitize_title($name);
}

↑ 修正前
↓ 修正後

function _get_plugin_safe_name ( $name ) {
  //return sanitize_title($name);
  return str_replace("%","",sanitize_title($name));
}

plugin-notes.phpを上記のように修正します。そうすると問題なく動くようになります。

補足

//プラグイン名が英語の場合
<a href="#" onclick="edit_plugin_note('throws-spam-away'); return false;" id="wp-plugin_note_editthrows-spam-away" class="edit">Edit note</a>

//プラグイン名が日本語の場合
<a href="#" onclick="edit_plugin_note('%e3%83%aa%e3%83%93%e3%82%b8%e3%83%a7%e3%83%b3%e3%82%b3%e3%83%b3%e3%83%88%e3%83%ad%e3%83%bc%e3%83%ab'); return false;" id="wp-plugin_note_edit%e3%83%aa%e3%83%93%e3%82%b8%e3%83%a7%e3%83%b3%e3%82%b3%e3%83%b3%e3%83%88%e3%83%ad%e3%83%bc%e3%83%ab" class="edit">Edit note</a>

リンクの部分をみると上記のようになっています。「%」という文字が、HTMLのclass名とかには使用できないということで、その部分がうまく動作しない原因になっているようです。この部分は、プラグイン一覧でユニーク(一意)であればよいので、変更しても問題は発生しません。

また、_get_plugin_safe_name()のあたりは、データの保存には使われていないことも確認しました。データの保存には、ブラグインのURL?のようなものをキーにして保存されてました。

ほかのプラグイン

Adds a column to the Plugins page where you can add, edit, or delete notes about a plugin.

WordPress.org

プラグイン一覧でメモを残せるプラグインはほかにもあって、上記とかもあります。こちらは最終更新日は5か月前になっています。Plugin Notesとはレイアウトが違うので今回乗り換えませんでした。そのあたりが気にならないのなら、こちらも悪くないかもと思います。

スポンサーリンク