WordPress:管理画面で追加したサイドメニューにtarget=”_blank”を指定する方法

WordPress:管理画面で追加したサイドメニューにtarget=”_blank”を指定する方法

備忘録。WordPressの管理画面にはfunctions.phpを使ってオリジナルメニューを追加することができますが、そのリンクにtarget="_blank"(別窓)指定を付ける方法です。
Codex見てもそれっぽいパラメータなどもない感じだったので、スマートな感じではないですがjQueryを使って実装する方法になります。

実装にはfunctions.phpに下記のように記述します。
最初の4行分はオリジナルメニューを追加するための記述となり、target="_blank"追加用の記述は6行目からとなります。

functions.php

add_action( 'admin_menu', 'register_my_custom_menu' );
function register_my_custom_menu() {
  add_menu_page( 'custom menu title', 'custom menu', 'manage_options', 'custompage', 'my_custom_menu_page', 'dashicons-share-alt2' );
}

add_action( 'admin_head', 'add_my_custom_menu_target_blank' );
function add_my_custom_menu_target_blank() {
?>
  <script type="text/javascript">
    jQuery(function($) {
      $('.toplevel_page_custompage').attr('target', '_blank');
    });
  </script>
<?php
}

見たままですが、追加したメニューのa要素にjQueryの.attr('target', '_blank')を使って追加するというものです。
使用しているクラス名はメニュー追加時に指定した$menu_slugによって変わる(サンプルでは$menu_slugに「custompage」が指定されています)ので環境にあわせて変更してください。
また、Chromeのデベロッパーツールなどを使えば、どのようなクラス名が指定されているのか簡単に確認できると思います。

jQueryを使わずにもっと良い指定方法がありそうな気もするのですが、追加したページを別窓で表示させたいという時がたまにあるので、そういった時にこの方法でとりあえず実装可能です。

Close the search window,
please press close button or esc key.