'boolean', 'sanitize_callback' => 'absint', 'default' => 1 ) ); register_setting( 'atba_settings', 'atba_site_summary', array( 'sanitize_callback' => 'sanitize_textarea_field' ) ); register_setting( 'atba_settings', 'atba_retention', array( 'sanitize_callback' => 'absint', 'default' => 90 ) ); register_setting( 'atba_settings', 'atba_post_types', array( 'sanitize_callback' => array( $this, 'sanitize_post_types' ), 'default' => array( 'post', 'page' ) ) ); register_setting( 'atba_settings', 'atba_blocked_bots', array( 'sanitize_callback' => array( $this, 'sanitize_bots' ), 'default' => array() ) ); } public function sanitize_post_types( $value ) { $valid = get_post_types( array( 'public' => true ) ); return array_values( array_intersect( (array) $value, $valid ) ); } public function sanitize_bots( $value ) { $valid = array_keys( ATBA_Bots::all() ); return array_values( array_intersect( (array) $value, $valid ) ); } public function dashboard_widget() { wp_add_dashboard_widget( 'atba_widget', __( 'AI Crawler Activity (30 days)', 'aitooler-bot-analytics' ), array( $this, 'render_widget' ) ); } public function render_widget() { $stats = ATBA_Logger::stats( 30 ); if ( ! $stats ) { echo '
' . esc_html__( 'No AI crawler visits recorded yet.', 'aitooler-bot-analytics' ) . '
'; return; } echo '| bot ); ?> | hits; ?> | last_seen ); ?> |
| URL | |
|---|---|
| url ); ?> | hits; ?> |