【Gush2カスタマイズ】更新日変更のデフォルトを「変更しない」にしてみました。
Gush2は、投稿画面で、更新日を変更するか変更しないか選択できるようになっています。
更新日を変更するかしないか選択できる機能を追加しました|Gush2説明書
デフォルトは、「変更する」になっています。
私は、ミスをこっそり修正することが多い(^^ゞので、「変更しない」をデフォルトにしました。
目次
function.php を変更するときの注意事項
function.phpは、style.cssや他のphpと違って、扱いを間違えると、とんでもないことになります。
下記の注意事項が理解できない方は、このカスタマイズはしないほうがよいです。
親テーマのfunction.phpを変更します
style.cssなどは、親子で重複の記述があっても子テーマが優先されますが、function.phpは、親子で重複の記述が許されていません。
なので、子テーマにfunction.phpを作るのではなく、親テーマのfunction.phpに変更を加えます。
オリジナルのfunction.phpをバックアップしておきます
function.phpに記述ミスがあると、画面が真っ白になったり、WordPress管理画面に入れなくなったり、ということもあるようです。
そうなったときに、元に戻せるようにオリジナルのfunction.phpをローカルにとっておきます。
オリジナルをFTPで送れば、元に戻るはずです。
function.phpの変更
投稿画面で常に「変更しない」にチェックが入るようにする
投稿画面を開いたらいつでも、「変更しない」が選択されているようにしました。
前回「変更する」を選んでいたとしても「変更しない」に戻ります。
ファンクション html_update_level_custom_box を下記のように変更します。
216 217 218 219 220 221 222 223 224 225 226 |
function html_update_level_custom_box() { $update_level = get_post_meta( $_GET['post'], 'update_level' ); echo '<div style="padding-top: 3px; overflow: hidden;">'; echo '<div style="width: 100px; float: left;"><input name="update_level" type="radio" value="high" '; if( $update_level[0]=="" || $update_level[0]=="high" ) echo ' checked="checked"'; echo ' />変更する</div><div style="width: 100px; float: left;"><input name="update_level" type="radio" value="low" '; if( $update_level[0]=="low" ) echo ' checked="checked"'; echo '/>変更しない<br /></div>'; echo '</div>'; } |
216 217 218 219 220 221 222 223 224 225 226 |
function html_update_level_custom_box() { $update_level = get_post_meta( $_GET['post'], 'update_level' ); echo '<div style="padding-top: 3px; overflow: hidden;">'; echo '<div style="width: 100px; float: left;"><input name="update_level" type="radio" value="high" '; echo ' />変更する</div><div style="width: 100px; float: left;"><input name="update_level" type="radio" value="low" '; echo ' checked="checked"'; echo '/>変更しない<br /></div>'; echo '</div>'; } |
(221行目は削除です)
投稿一覧でクイック編集をしたときも「変更しない」ようにする
私は、カテゴリーやタグの付け替えをクイック編集を使って行いますが、そんなときは更新日は変更したくないので、クイック編集で更新日が変更されないようにしました。
ファンクション my_insert_post_data を下記のように変更します。
240 241 242 243 244 245 246 247 |
function my_insert_post_data( $data, $postarr ){ $mydata = $_POST['update_level']; if( $mydata == "low" ){ unset( $data["post_modified"] ); unset( $data["post_modified_gmt"] ); } return $data; } |
240 241 242 243 244 245 246 247 |
function my_insert_post_data( $data, $postarr ){ $mydata = $_POST['update_level']; if( $mydata != "high" ){ unset( $data["post_modified"] ); unset( $data["post_modified_gmt"] ); } return $data; } |
イマイチなところ
「変更する」を一度も選ばずに公開すると、公開日と同じ日付で更新日が表示されてしまいます。
そんなときは、すぐに「変更する」を選んで公開し直せば、更新日は消えてくれます。
まとめ
イマイチなところをどうにかしたかったのだけど、いろいろいじって他のところに影響が出たら困るので、やめときました。
あと、すでに表示されている更新日を取り消せるようにもしたかったけど、私には無理でした。(^_^;)
Gush2のバージョンアップに期待したいと思います。(^^)
この記事へのコメントはこちら