diff --git a/README.md b/README.md index 1ee5fbc..d1f8637 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ caching time of 12 hours obviously makes no sense. * Requires WordPress 4.7 or above * Migrated AJAX to REST API * Resolved Javascript compatibility issues with IE11 +* Added optional shortcode support for tick content ### 1.1.1 - 2021-03-20 diff --git a/assets/screenshot-4.png b/assets/screenshot-4.png index 0244199..3314b79 100644 Binary files a/assets/screenshot-4.png and b/assets/screenshot-4.png differ diff --git a/includes/class-admin.php b/includes/class-admin.php index 3d89bfd..0d8eea0 100644 --- a/includes/class-admin.php +++ b/includes/class-admin.php @@ -107,6 +107,15 @@ class Admin extends SCLiveticker { 'scliveticker_settings_general', array( 'label_for' => esc_attr( self::OPTION ) . '-show-feed' ) ); + + add_settings_field( + 'enable_shortcode', + __( 'Shortcode support', 'stklcode-liveticker' ), + array( __CLASS__, 'settings_enable_shortcode_field' ), + 'scliveticker-settings-page', + 'scliveticker_settings_general', + array( 'label_for' => esc_attr( self::OPTION ) . '-enable-shortcode' ) + ); } /** @@ -178,6 +187,21 @@ class Admin extends SCLiveticker { echo '

' . esc_html__( 'Can be overwritten in shortcode.', 'stklcode-liveticker' ) . '

'; } + /** + * Render enable css field. + * + * @return void + * + * @since 1.2 + */ + public static function settings_enable_shortcode_field() { + $checked = self::$options['enable_shortcode']; + + echo ' '; + esc_html_e( 'Enable', 'stklcode-liveticker' ); + echo '

' . esc_html__( 'Enable shortcode processing in tick content.', 'stklcode-liveticker' ) . '

'; + } + /** * Render the settings page. * @@ -197,10 +221,11 @@ class Admin extends SCLiveticker { public static function validate_settings( $input ) { $defaults = self::default_options(); - $result['enable_ajax'] = isset( $input['enable_ajax'] ) ? intval( $input['enable_ajax'] ) : 0; - $result['poll_interval'] = isset( $input['poll_interval'] ) ? intval( $input['poll_interval'] ) : $defaults['poll_interval']; - $result['enable_css'] = isset( $input['enable_css'] ) ? intval( $input['enable_css'] ) : 0; - $result['show_feed'] = isset( $input['show_feed'] ) ? intval( $input['show_feed'] ) : 0; + $result['enable_ajax'] = isset( $input['enable_ajax'] ) ? intval( $input['enable_ajax'] ) : 0; + $result['poll_interval'] = isset( $input['poll_interval'] ) ? intval( $input['poll_interval'] ) : $defaults['poll_interval']; + $result['enable_css'] = isset( $input['enable_css'] ) ? intval( $input['enable_css'] ) : 0; + $result['show_feed'] = isset( $input['show_feed'] ) ? intval( $input['show_feed'] ) : 0; + $result['enable_shortcode'] = isset( $input['enable_shortcode'] ) ? intval( $input['enable_shortcode'] ) : 0; return $result; } diff --git a/includes/class-scliveticker.php b/includes/class-scliveticker.php index da80043..e8624f6 100644 --- a/includes/class-scliveticker.php +++ b/includes/class-scliveticker.php @@ -418,11 +418,12 @@ class SCLiveticker { */ protected static function default_options() { return array( - 'enable_ajax' => 1, - 'poll_interval' => 60, - 'enable_css' => 1, - 'show_feed' => 0, - 'reset_settings' => 0, + 'enable_ajax' => 1, + 'poll_interval' => 60, + 'enable_css' => 1, + 'show_feed' => 0, + 'enable_shortcode' => 0, + 'reset_settings' => 0, ); } @@ -437,6 +438,10 @@ class SCLiveticker { * @return string HTML code of tick. */ private static function tick_html( $time, $title, $content, $id ) { + if ( self::$options['enable_shortcode'] ) { + $content = do_shortcode( $content ); + } + return '
  • ' . '' . esc_html( $time ) . '' . '' . esc_html( $title ) . ''