概要説明
更新していなくても最終更新日だけ表示させることができるダッシュボード最終更新日カスタマイズ。ボタンをクリックだけで任意のタイミングを最終更新日として表示させることができます。最終更新日時まで保存しパラメーターに設定することでとCSS、JSのブラウザキャッシュクリアに応用することもできます。
ダッシュボードに更新ボタンを追加
functions.php
/*---------------------------------------------------- 管理画面から更新ボタンを押したタイミングを最終更新日として表示 ----------------------------------------------------*/ if ( !function_exists( 'add_dashboard_widget_update_date' ) ){ function get_last_update_date() { $update_date = get_user_meta(1, 'dashboard_widget_update_date', true); if ( $update_date != '' ) { $update_date = '最終更新 : '.$update_date; } else { $update_date = ''; } return $update_date; } // ウィジェットを追加 function add_dashboard_widget_update_date() { wp_add_dashboard_widget( 'dashboard_widget_update_date', '更新日表示用', 'dashboard_widget_update_date_callback' ); } add_action('wp_dashboard_setup', 'add_dashboard_widget_update_date'); // 保存処理 function update_dashboard_widget_update_date() { if ( isset($_POST['date_update_flag']) ) { if ( $_POST['date_update_flag'] == 1 ) { update_user_meta(1, 'dashboard_widget_update_date', wp_date('Y/m/d')); } } } add_action('admin_init', 'update_dashboard_widget_update_date'); // フォーム定義 function dashboard_widget_update_date_callback() { echo '<form method="post">'; echo '<input type="hidden" name="date_update_flag" value="1">'; echo '<p><input type="submit" class="button button-primary" value="更新">'. get_last_update_date().'</p>'; echo '</form>'; } }
表示用コード
<?php echo get_last_update_date(); ?>
表示用関数を表示させたい位置に既述するだけで表示できます
最終更新日時を保存してCSSキャッシュのクリアにも応用できます
style.css?date=最終更新日時(Ymdhis)
と設定しておくと任意のタイミングでCSSキャッシュもクリアできます
functions.php
/*---------------------------------------------------- 管理画面から更新ボタンを押したタイミングを最終更新日時(YmdHis)としてパラメーターに指定 ----------------------------------------------------*/ if ( !function_exists( 'add_dashboard_widget_update_datetime' ) ){ function get_last_update_datetime() { $update_datetime = get_user_meta(1, 'dashboard_widget_update_datetime', true); if ( $update_datetime != '' ) { $update_datetime = $update_datetime; } else { $update_datetime = ''; } return $update_datetime; } // ウィジェットを追加 function add_dashboard_widget_update_datetime() { wp_add_dashboard_widget( 'dashboard_widget_update_datetime', 'キャッシュクリアパラメーター設定', 'dashboard_widget_update_datetime_callback' ); } add_action('wp_dashboard_setup', 'add_dashboard_widget_update_datetime'); // 保存処理 function update_dashboard_widget_update_datetime() { if ( isset($_POST['datetime_update_flag']) ) { if ( $_POST['datetime_update_flag'] == 1 ) { update_user_meta(1, 'dashboard_widget_update_datetime', wp_date('YmdHis')); } } } add_action('admin_init', 'update_dashboard_widget_update_datetime'); // フォーム定義 function dashboard_widget_update_datetime_callback() { echo '<form method="post">'; echo '<input type="hidden" name="datetime_update_flag" value="1">'; echo '<p><input type="submit" class="button button-primary" value="更新"> ?date='. get_last_update_datetime().'</p>'; echo '</form>'; } }
パラメーター設定用のコード
// ハードコーディンしている場合 style.css?date=<?php echo get_last_update_datetime(); ?> // ?ver=バージョン指定部分に日付を指定する場合 <?php wp_enqueue_style('style', get_stylesheet_uri(), false, get_last_update_datetime(), 'all'); ?> // パラメーターを指定(?date=)する場合 <?php wp_enqueue_style('style', get_stylesheet_uri() . '?date='.get_last_update_datetime(), false, version_num(), 'all'); ?>