WordPressで管理画面の更新ボタンの表記を変える

functions.phpに追記。

add_action('admin_footer', 'rewrite_publish_button_value');
function rewrite_publish_button_value() {
  global $post;
  if (empty($post)) {
    return;
  }

  echo '<script type="text/javascript">';
  echo 'document.getElementById("publish").value = "保存";';
  echo '</script>';
}

フックはadmin_footer。
記事の公開状態を見て条件分岐するなどいろいろカスタマイズできる。

ここをカスタマイズしてる時点で何か戦略的な敗北という気がしないでもないが、それはさておく。

単純に表記を決め打ちで変えるだけならadmin_enqueue_scriptsのフックでjsを読み込んでもいい。

add_action('admin_enqueue_scripts', 'rewrite_publish_button_value');
function rewrite_publish_button_value($hook) {
  if (!in_array($hook, array('post-new.php', 'post.php'))) {
    return;
  }

  wp_enqueue_script('rewrite_pbv', get_template_directory_uri() . '/js/hoge.js');
}

admin_enqueue_scriptsの場合は関数の引数に$hookが渡されてくるので、これでスクリプトを差し込むか否かを判定するのがフォーマルっぽい。

hoge.jsの内容。

document.addEventListener('DOMContentLoaded', function() {
  document.getElementById("publish").value = "保存";
});

admin_enqueue_scriptsにする場合はhead内でスクリプトが読み込みが行われるのでDOMのロードを待ってから実行。