WordPress2.7 の Dashboard で Post や Page の編集画面では、Post Slug (ポストスラッグ) Page Slug (ページスラッグ) がデフォルトで非表示になっています。
ヘッダー付近の Screen Options タブで設定できますが、すべてを ON にすると、(バグのため?)上記 Slug のみ OFF (非表示) に戻ってしまいます。
おそらく、slug に 2byte コードが混入されるのを防ぐためだと思われますが、これを使って積極的にコントロールしたい場合には不便です。
コアファイルを直接編集することになりますので、試される場合には自己責任にてお願いします。
また、当然ながら WordPress のアップデートがされた場合には再度編集する必要があります。
コアファイルに手をつけるのはどうかなとも思いますが、どうもうまい方法が浮かびません。
オーバーライドできる関数であれば、Plugins や /wp-content/themes/MY_THEME/functions.php でカスタマイズした方がよいのですけどね。
ユーザーオプションの meta-box-hidden に架空の項目を作ってこれをオフにするような方法もありますが、きちんと後始末しておかないとデータベースにゴミが残りそうです。
/wp-admin/includes/template.php
line 2866 付近 の function get_hidden_meta_boxes()
“Hide slug boxes by default” とコメントしてある部分を無効化します。
2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 | function get_hidden_meta_boxes($page) { $hidden = (array) get_user_option( "meta-box-hidden_$page", 0, false ); // Hide slug boxes by default if ( empty($hidden[0]) ) { if ( 'page' == $page ) $hidden = array('pageslugdiv'); elseif ( 'post' == $page ) $hidden = array('slugdiv'); } return $hidden; } |
これを下記のようにコメントアウトします。
2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 | function get_hidden_meta_boxes($page) { $hidden = (array) get_user_option( "meta-box-hidden_$page", 0, false ); // Hide slug boxes by default --- comment out by USER /* if ( empty($hidden[0]) ) { if ( 'page' == $page ) $hidden = array('pageslugdiv'); elseif ( 'post' == $page ) $hidden = array('slugdiv'); }*/ return $hidden; } |
くれぐれも、自己責任で。バックアップをお忘れ無く。
追記
この件、本家のバグトラックを当たってみたのですが、そもそも、別のバグのためにこのような仕様になってしまったようですね。
バグなのか仕様になってしまうのか?できれば直してもらいたい物です。
2.8 にアップデートしてみましたが、そのままです。
行位置は異なりますが、同様に function get_hidden_meta_boxes () に修正が必要です。