サポート » 使い方全般 » get_option()の更新・変更日時の取得

  • get_optionの書いた日、変更した日は
    どのように取得するのでしょうか?

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは、

    get_option()はデータを、 wp-options テーブルから取得します

    http://wpdocs.osdn.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E6%A7%8B%E9%80%A0

    変更日などの情報は、デフォルトでは保存されませんが 必要であればカスタマイズは可能ではないかと思います。

    どんなことをしたいのですか?

    トピック投稿者 centos64

    (@centos64)

    http://2inc.org/blog/2012/08/04/1898/
    一般設定で入力した項目の日時を取得したいです
    例えばFacebook項目を追加して
    入力した日時、変更入力した日時を取得したいです

    例示先のコードに追加する ざっくりとした例は以下のようになります。

    文字列としてセットされている facebook_appid を配列に変更します。

    フォームフィールドも配列として送信するように変更します。

    フィルターで、更新があった場合に pre_update_option_facebook_appidフィルターで、更新時刻を facebook_appid にセットします。

    
    //既にfacebook_appidがセットされている場合は、削除してください
    //delete_option( 'facebook_appid' ); 
    
    add_filter( 'pre_update_option_facebook_appid', 'custom_pre_update_option_facebook_appid', 10, 3 );
    
    function custom_pre_update_option_facebook_appid( $value, $old_value, $option ) {
    	//フィールドが更新されたら 更新時間をセット
    	if ( $value[ 'id' ] !== $old_value[ 'id' ] ) {
    
    		$value[ 'date' ] = current_time( 'Y-m-d H:i:s' );
    	}
    	return $value;
    }
    
    add_action( 'admin_init', 'add_general_custom_sections' );
    
    function add_general_custom_sections() {
    	// add_settings_field( 'キー', 'ラベル', 'コールバック関数', 'general' )で項目を追加
    	add_settings_field( 'facebook_appid', 'Facebook AppID', 'facebook_appid', 'general' );
    	// register_setting( 'general', 'キー' )で値を保存
    	register_setting( 'general', 'facebook_appid' );
    }
    
    function facebook_appid( $args ) {
    	//フォームを文字列から、配列に変更
    	$option_datas	 = get_option( 'facebook_appid' );
    	//値を配列から取得
    	$id				 = $option_datas[ 'id' ];
    	$date			 = $option_datas[ 'date' ];
    	?>
    	    <input type="text" name="facebook_appid[id]" id="facebook_appid" size="30" value="<?php echo esc_attr( $id ); ?>" />
    		<input type="text" name="facebook_appid[date]" id="facebook_appid" size="30" value="<?php echo $date; ?>" />
    	<?php
    }
    

    試験的に書いたコードなので、重要なセクションなので 参考にする場合は十分検証してください
    送信フィールドを作らない場合は、あらかじめ

    
    if ( !get_option( 'facebook_appid' ) ) {
    	add_option( 'facebook_appid', array( 'id' => '', 'date' => '' ) );
    }
    

    とするなどの工夫をしてみてください

    • この返信は7年、 6ヶ月前にnobitaが編集しました。
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「get_option()の更新・変更日時の取得」には新たに返信することはできません。