WordPress2.7 の Dashboard. Screen Options のデフォルトをカスタマイズ (BUG FIX)

WordPress2.7 の Dashboard. Screen Options のデフォルトをカスタマイズ (BUG FIX)

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;
}

くれぐれも、自己責任で。バックアップをお忘れ無く。

追記
この件、本家のバグトラックを当たってみたのですが、そもそも、別のバグのためにこのような仕様になってしまったようですね。
バグなのか仕様になってしまうのか?できれば直してもらいたい物です。

『WordPress2.7 の Dashboard. Screen Options のデフォルトをカスタマイズ (BUG FIX)』へのコメント (コメント数 1)

  1. 2.8 にアップデートしてみましたが、そのままです。
    行位置は異なりますが、同様に function get_hidden_meta_boxes () に修正が必要です。

コメントをどうぞ

解答を入力してください。 (*必須)Captcha loading...