WordPress 管理画面ダッシュボードから更新ボタンを押したタイミングを最終更新日としてページに表示させる

概要説明

更新していなくても最終更新日だけ表示させることができるダッシュボード最終更新日カスタマイズ。ボタンをクリックだけで任意のタイミングを最終更新日として表示させることができます。最終更新日時まで保存しパラメーターに設定することでと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'); ?>

関連機能

  1. 管理画面ヘッダーの不要なメニューを非表示にする

  2. 記事タイトルの初期値(プレースホルダー)をpost_type毎に変更する

  3. スマートフォン判定処理 ( User-Agent判定 )

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

ぜーんぶひっくるめてのお前なんだ
いいんだそれで

バガボンド
by 沢庵宗彭

Profile

PAGE TOP
Amazon プライム対象