= 5.6 - Aug 1 2023 = * 🌱**Page Optimize** New JS Delay Includes option. (Mitchell Krog/Gerard Reches/Ignacy Hołoga) * **Crawler** Sitemap can use search for URL now. * **GUI** Restrict the scope of balloon CSS rules to avoid conflicts. (#567) * **Object Cache** Detect Memcached in more situations. (#568) * **API** Support `litespeed_purged_front` hook. (Umberto Fiorelli) = 5.5.1 - Jul 19 2023 = * 🐞**Image Optimization** Fixed a bug where WebP replacements couldn't be pulled without optimizing the original images. * 🐞**Image Optimization** Invalid images will now be removed when sending requests to the server. (#138993) * **Cloud** Added support for error codes `unpulled_images` and `blocklisted`. (Tynan) = 5.5 - Jun 20 2023 = * 🌱**Crawler** Can now use multiple sitemaps. (Tobolo/Tim Nolte) * 🌱**Crawler** Now runs asynchronously when manually invoked. * 🌱**Crawler** Now runs asynchronously when invoked from cron. * 🐞**Crawler** Fixed the realtime status bug when crawling. * **Crawler** Summary page now displays server load. (Ruikai) * 🐞**Page Optimize** Fixed an issue where UCSS could not be generated for error pages. (james58899) #556 * 🌱**Image Optimize** Now pulls images asynchronously. * **Image Optimize** Now prevents concurrent requests via a locking mechanism. * **Image Optimize** The process can now bypass invalid image records and continue. * 🐞**Image Optimize** Fixed an issue where images ready for optimization might have to wait for new images to be added before sending the request. * **Cloud** Replaced dashboard links with login/link to my.quic.cloud actions. * **GUI** Added indicators to show when certain options are passively enabled by Guest Mode. * **Htaccess** Added a noabort rule to support asynchronous crawling. * **Htaccess** The "Do Not Cache User Agents" option is now case-insensitive. (Ellen Dabo) * **General** The "Server IP" option now allows IPv4 format only. (Ruikai) * **Misc** Every page's closing HTML comments now displays UCSS/CCSS status. * **Object** Fixed a warning for null get_post_type_object. * **Object** Object_Cache::delete now always returns a boolean value. * **Cache** Fixed advanced-cache.php file warnings for WordPress versions less than 5.3. * **Debug** Added debug logging to record the plugin's total processing time. * **API** HTML minification can now be bypassed via the litespeed_html_min filter. = 5.4 - Apr 19 2023 = * **Image Optimize** Refactored DB storage for this feature. * **Image Optimize** Reduced DB table size. * **Image Optimize** Existing `img_optm` DB tables will have their data gradually transitioned to the new storage format with this update. Once an `img_optm` table is empty, it won't be used anymore. * **Page Optimize** Enabled WebP support for Googlebot User Agent. = 5.3.3 - Feb 22 2023 = * **Page Optimize** Excluded Jetpack stats JS. * **DB Optimize** Fixed DB Optm SQL for revision postmeta. * **Cache** Fixed an undefined array key warning. * **Purge** Prevented undefined array key warning when widgets are disabled. * **Object** Fixed dynamic property deprecation warnings. * **Admin** Safely redirect to homepage if referer is unknown. * **Activation** Check that item slug exists first. * **Cache** Prevented cache header to send globally if header part already closed. * **CSS** Improved string handling for CSS minifier. * **Debug** Fixed undefined array key warnings. * **Misc** Fixed implicit conversion in random string generation function `Str::rrand`. = 5.3.2 - Jan 10 2023 = * **Object** Fixed object cache lib incr, decr functions (thanks bdrbros/DANIEL) #516 * **Database Optimize** Database optimizer now handles postmeta when cleaning revisions #515 * **Cache** Made nocache the default for 4xx/5xx response codes. * **Cache** Default cache TTL settings removed for 403 response code, changed to 10 mins for 500 response code. * **GUI** Added a description for the redetect nodes function. * **GUI** Added a description for the refresh button sync function. = 5.3.1 - Dec 12 2022 = * **CLI** Presets feature is now usable from the CLI. (xLukii) * **CLI** Added 'import_remote' for litespeed-option to enable importing options from URLs. (xLukii) * **Cache** Added LiteSpeed headers to site health check for full page cache. * **Crawler* Fixed unauthorized crawler toggle operation. (#CVE-2022-46800) * **UCSS** Fixed a bug where items weren't added back to the UCSS queue after purging. * **Page Optimize** Fixed a bug where generated CSS would return 404 after upgrading via CLI. * **3rd** Fixed a bug where a WooCommerce session doesn't exist when checking cart, notices (Jason Levy/Gilles) * **GUI** Made LiteSpeed admin notice icon grayscale to avoid distraction. (martinsauter) * **GUI** Fixed RTL style for notification icon. * **API** Added a new hook `litespeed_optm_uri_exc` to exclude URI from page optimization. * **API** Excluded `.well-known` path from page optimization. = 5.3 - Oct 31 2022 = * 🌱**Presets** New `Presets` feature and menu item. * 🌱**UCSS** New option `UCSS File Excludes and Inline` to increase page score. (Ankit) * **UCSS** When UCSS is purged, automatically append URL to UCSS generation queue. (Ankit) * **Page Optimize** Removed a redundant `defer` attribute from Lazy Load image library usage. (#928019) * **Image Optimize** Dropped `Create WebP Versions` setting. Will automatically enable when `Image WebP Replacement` is activated. * **Cloud** Fixed a bug where internal updates were delayed for API keys. * **Cloud** Improved auto alias feature by waiting for second request from alias domain validation before removing a pending alias. * **Purge** Automatically Purge All when plugin auto update is done. * **Purge** Fixed a potential PHP8 error that occurred when removing unused widgets. (acsnaterse) * **Cache** Fixed an infinite 301 redirection caused by UTM-encoded link. * **CLI** Added syntax examples for values that include line breaks (xLukii) * **CLI** Purge requests will now be included with the original request to avoid potential CSS/JS 404 issues. * **ESI** Check all user roles for cache vary and page optimization excludes. * **GUI** Added a LiteSpeed icon to admin message banners to indicate the banners are from our plugin. (Michael D) * **Crawler** Fixed a cache-miss issue that occurred when Guest Mode was ON and WebP Replacement was OFF. * **3rd** Remove WooCommerce private cache. * **3rd** Removed LiteSpeed metabox from ACF field group edit page. (keepmovingdk) = 5.2.1 - Sep 7 2022 = * 🐞**Core** Fixed a fatal error that occurred when uninstalling. (#894556 Hostinger) * **Dash** Show partner info on the dashboard for partner-tier QC accounts. * **UCSS** Auto-purge UCSS on post update. (Ankit) * 🕸️**Crawler** Respect the `LITESPEED_CRAWLER_DISABLE_BLOCKLIST` constant for unexpected results too. (Abe) = 5.2 - Aug 17 2022 = * 🌱**UCSS** Added UCSS message queue to improve service quality and reliability * 🐞**VPI** Fixed conflict w/ image lazyload; used HTML before image lazyload to avoid invalid `data:base64` results. * **VPI** Changed VPI Cron default setting to OFF. * **VPI** Automatically resend requests when VPI result contains invalid `data:` image value. * **Conf** Fixed an issue with URI Excludes, where paths using both ^ and $ were not correctly excluded (Eric/Abe) * **Conf** Auto corrected `WP_CONTENT_URL` protocol if it was explicitly set to `http://`. * **Cloud** No longer sync the configuration to QUIC.cloud if configuration is unchanged. * **Cloud** Appended home_url value into synced configuration data for wp-content folder path correction. * 🕸️**Crawler** Improved compatibility with server `open_basedir` PHP setting limit when detecting load before crawling. (Tom Robak/mmieszalski) = 5.1 - Aug 1 2022 = * 🌱**Toolbox** Debug log can now show Purge/Crawler logs as well. (Tynan) * **UCSS** Prepared for future message queue. * **UCSS** Moved UCSS class to its own file. * **3rd** Added 3rd-party support for WC PDF Product Vouchers. (Tynan) * **Core** Fixed potential PHP warning when saving summary data. (Sarah Richardson) * **Purge** Purge can now clear the summary correctly. (Kevin) * **VPI** Added `queue_k` to API notification. = 5.0.1 - Jul 27 2022 = * 🐞**Cloud** Fixed a potential PHP error that could occur with the cloud service summary. (Bruno Cantuaria) * **3rd** Added Autoptimize back to compatibility list. = 5.0.0.1 - Jul 26 2022 = * 🔥🐞**Cloud** Fixed an issue with the cloud request timestamp update which causes a usage sync failure. (great thanks to Kevin) = 5.0 - Jul 25 2022 = * 🌱**VPI** Added Viewport Images feature to LiteSpeed Options metabox on Post Edit page. * 🌱**CDN** Added Auto CDN Setup feature for simple QUIC.cloud CDN setup. (Kevin) * 🌱**Page Optimize** Automatically cache remote CSS/JS files when fetching for optimization (Lauren) * 🌱**Cache** Added LiteSpeed Options for page-level cache control on Post Edit page. (denisgomesfranco) * 🌱**Cloud** Auto Alias feature. * 🌱**Debug** Added `Debug String Excludes` option. (Hanna) * 🌱**UCSS** Added `Purge this page - UCSS` option to Admin Bar dropdown menu. (Ankit) * 🌱**Guest** Added `litespeed_guest_off=1` URL query string parameter to bypass Guest Mode. (cbdfactum) * 🐞**Page Optimize** Fixed an issue where CSS anchors could be wrongly converted to a full path when minifying. (Tynan) * **Page Optimize** Bypass CCSS/UCSS generation when a self-crawled CSS resource returns a 404 code. (Abe) * **Object** Allow `LSCWP_OBJECT_CACHE` predefined to turn off Object Cache. (knutsp) * **Data** Fixed an issue where empty version tags in the database repeatedly toggled the upgrade banner and reset settings to default. * **Purge** Fixed an issue where the site's index page could be purged upon deletion of an unviewable post. (Kevin) * **Toolbox** Added `View site before optimization` button under `Debug` tab. (Ryan D) * **Admin** Switch to using the `DONOTCACHEPAGE` constant to indicated WP-Admin pages are not cacheable. * **Admin** Moved no-cache header to very beginning to avoid caching unexpected exits. * **Cloud** Added message queue service for VPI. (Abe) * **Cloud** Bypassed 503 error nodes from node redetection process. (Abe) * **Cloud** Fixed a failure to detect `out_of_quota`. (Lauren) * **Cloud** Added ability to display dismissable banners generated by QUIC.cloud. * 🕸️**Crawler** Added realtime load detection before crawl. * 🕸️**Crawler** Adjusted crawler behavior for Divi pages to allow for Divi's CCSS generation process. (miketemby) * 🕸️**API** PHP constant `LITESPEED_CRAWLER_DISABLE_BLOCKLIST` and filter `litespeed_crawler_disable_blocklist` to disable blocklist. (Tobolo) * **CDN** Automatically add a trailing slash to `CDN URL` and `Original URLs` if user didn't provide one. (Lucas) * **Cache** When a URL redirects to a URL with a query string, consider these as different for caching purposes. (Shivam) * **Media** Added ability to disable lazyload from the LiteSpeed Options metabox on Post Edit page. * **Media** Added new default values to `WebP Attribute to Replace` setting for WPBakery and Slider Revolution. (JibsouX) * **Image Optimize** Dropped redundant `Page Speed` user agent when serving WebP images. (serpentdriver) * **GUI** Fixed an issue where manually dismissable admin messages were instead being treated as one-time messages. (Tynan Beatty) * **GUI** Fixed an issue where subsequent admin alerts would overwrite existing alerts in the queue. (Kevin/Tynan) * **GUI** Updated time offset in log. (Ruikai #PR444 #PR445) * **GUI** Added `litespeed_media_ignore_remote_missing_sizes` API description. * **CCSS** Fixed an issue where CCSS was unexpectedly bypassed if `CSS Combine` was OFF and `UCSS Inline` was ON. (Ruikai) * **Debug** Added response headers to debug log. (Kevin) = 4.6 - Mar 29 2022 = * **Page Optimize** Improved compatibility for JS Delay. * 🐞**Page Optimize** Fixed an issue for network subsites that occurred when only CSS/JS Minify are enabled. * **Localization** Added query string compatibility for Resource URLs. * **Vary** Fixed a potential PHP warning when server variable `REQUEST_METHOD` is not detected. * **Cache** Guest Mode now respects Cache Excludes settings. * **GUI** Added warning notice when enabling `Localize Resources` feature; each localized JS resource requires thorough testing! * **GUI** Fixed a PHP Deprecated warning that occurred with the Mobile Cache User Agent setting on PHP v8.1+. (jrmora) * **Conf** Removed Google related scripts from default `Localization Files` value. * **Media** WordPress core Lazy Load feature is now automatically disabled when LiteSpeed Lazy Load Images option is enabled. (VR51 #Issue440) * 🐞**API** Filter `litespeed_ucss_per_pagetype` for UCSS now also applies to CSS Combine to avoid UCSS failure. (Ankit) * **API** Added a filter `litespeed_media_ignore_remote_missing_sizes` to disable auto detection for remote images that are missing dimensions. (Lucas) = 4.5.0.1 - Feb 24 2022 = * 🔥🐞**Media** Fixed an issue where lazy-loaded images would disappear when using custom CSS image loading effects. = 4.5 - Feb 23 2022 = * 🌱**Page Optimize** Localization is back. * **Guest** Fixed organic traffic issue as different browsers may fail to set `document.referrer`. * **Image Optimize** Improved wp_postmeta table compatibility when gathering images. (Thanks to Thomas Stroemme) * 🐞**Page Optimize** Fixed a potential CSS/JS 404 issue for existing records that have been marked as expired. * **ESI** `LITESPEED_ESI_OFF` now affects `litespeed_esi_url` API filter too. * **Guest** Added a check to determine if Guest Mode is blocked by a third-party, and display warning if it is (Ruikai) * **Guest** To support WP sites with multiple domains, Guest Mode detection URL no longer uses domain. * **Report** Network now shows Toolbox page when having a large number of subsites. * **DB Optimize** Reduced default subsites count from 10 to 3 under Network Admin -> DB Optimize page to avoid timeout. * **Cloud** Fixed potential `lack_of_token` error when requesting domain key for cases where local summary value was not historically included in the array. * **Cloud** Fixed a PHP fatal error that occurred when encountering a frequency issue under CLI. (Dean Taylor #Issue410) * **Avatar** Force gravatar cache refresh in browsers and on CDN (rafaucau #PR430) * **API** New filter `litespeed_purge_ucss` to purge a single page UCSS. (#376681) * **API** New filter `litespeed_ucss_per_pagetype` for UCSS per page type generation. (Ankit) * **GUI** Replaced some GUI text and settings with more inclusive language (kebbet #PR437 #PR435) * **3rd** Excluded `WP Statistics` from inline JS optimize. (Ryan D) * **3rd** Added API filter `litespeed_3rd_aelia_cookies` for Aelia CurrencySwitcher. * **Media** Updated image lazyload library to 17.5.0. = 4.4.7 - Jan 11 2022 = * **Page Optimize** Dropped `Inline Lazy Load Images Library` option. Now will always inline lazyload library. (Ankit) * **3rd** Prevented JavaScript files from being appended to Rank Math SEO sitemap. * **Purge** Dropped default stale purge when purging a post. * **Cloud** Dropped unused API calls. * **Cloud** Dropped redundant IP validation in API calls. = 4.4.6 - Dec 27 2022 = * **Guest** Restored `document.referrer` for organic traffic purposes when Guest Mode is enabled. (michelefns) * **Image Optimize** Fixed a potential PHP notice when uploading images in WP w/ PHP7.4+. (titsmaker) * **ESI** Fixed an issue where ESI settings were not updated on customized widgets(#422 Abe) * **3rd** Reverted ESI Adminbar change on Elementor front pages for backward compatibility (#423 Abe) * **3rd** Fixed an issue where disabling ESI potential caused a PHP warning when using `Perfmatters`. (Jeffrey Zhang) * **Misc** Check whether HTTP_REFERER is set or not before using it in Router class. (#425 Abe) = 4.4.5 - Dec 1 2021 = * **Data** Fixed potential PHP notice when generating CSS/JS optimized files w/ PHP v7.4+. (Sarah Richardson/silencedgd/slr1979) * **API** Added `LITESPEED_ESI_OFF` constant to disable ESI, when defined before the WP `init` hook. * **API** Added `LSCWP_DEBUG_PATH` constant to specify debug log path. (khanh-nt) * 🐞**GUI** Fixed an issue where admin messages were not displayed. (Daniel McD) * **CDN** Used WP remote function to communicate w/ Cloudflare per WP guidance. * **3rd** Added compatibility for Perfmatters plugin's script manager (#417 Abe) * **3rd** Added compatibility for Elementor's Editor button when ESI is on (#418 Abe) = 4.4.4 - Nov 23 2021 = * **Page Optimize** Delay deletion of outdated CSS/JS files for a default of 20 days to avoid 404 errors with cached search engine copies. * **Cache** When caching, no longer send a purge request for CSS/JS removal to avoid cache engine conflicts. * 🐞**Core** Optimized SQL queries while autoloading if expected options are missing; reduced by 7 and 3 queries on backend and frontend respectively. (#396425 Jackson) * **Page Optimize** Fixed a 404 issue that occurred when upgrading the plugin manually, with a package upload or through the plugin manager. (Tobolo/Małgorzata/Abe) * **API** Added `litespeed_ccss_url` and `litespeed_ucss_url` API to manipulate the request URL for CCSS and UCSS. * **REST** Fixed a potential warning when detecting cacheable status on REST call. (rafaucau) * **OLS** Fixed an issue where the `COOKIEHASH` constant was undefined when used with OpenLiteSpeed as an MU plugin or with network activation. * **3rd** Sanitized POST data for nextgengallery. * **Cloud** Sanitized GET data when linking to QUIC.cloud. (#591762 WPScan) = 4.4.3 - Oct 13 2021 = * 🐞**Media** Fixed an issue where WebP is served erroneously under Guest Mode on older versions of Safari. (hash73) * 🐞**Media** Reverted regex change to fix `Lazy Load Image Parent Class Name Excludes` failure. (thpstock) * **Purge** Disabled `Purge Delay` in the optimization process by default. * **Conf** Dropped `.htaccess Path Settings` options for security concern. (WP) * **Conf** Dropped `CSS HTTP/2 Push`/`JS HTTP/2 Push` options. (Kevin) * **Conf** Set `Guest Optimization` default to OFF. * **Conf** Set `CCSS Per URL` default to OFF to avoid consuming more quota than intended after upgrade to v4. (n111) * **Object** Fixed an issue with Object Cache warnings during upgrade, when Guest Mode is enabled. * ☁️**Cloud** Fixed an issue with PHP notices when inquiring about quota usage for a service not currently in use. * **GUI** Added GO detail warning. (n111) * **GUI** Moved "quota will be still in use" warning from Guest Mode to Guest Optimization section. * **API** Added `LITESPEED_CFG_HTACCESS` PHP Constant to specify .htaccess path. * **API** Added `litespeed_qs_forbidden` hook to bypass `?LSCWP_CTRL=` query string. (minhduc) * **API** Added `litespeed_delay_purge` hook to delay the following Purge header until the next request. * **API** Added `litespeed_wpconfig_readonly` hook to disable `WP_CACHE` constant update based on the wp-config.php file. (#633545) = 4.4.2 - Sep 23 2021 = * **Purge** In order to clear pages containing 404 CSS/JS, the purge header will always be sent even in cases where purge must be delayed. * 🐞**Purge** Fixed a potential PHP warning caused when generating different optimized filenames. * **Cron** Dropped unnecessary HTML response in cron which sometimes resulted in wp-cron report email. (Gilles) * **Page Optimize** Purge caused by CSS/JS file deletion will now be silent. * **Page Optimize** Fixed an issue where the homepage failed to purge when addressing the 404 CSS/JS issue. * **Avatar** Fixed potential localized Avatar folder creation warning. (mattk0220/josebab) * **API** Added filter `litespeed_optm_html_after_head` to move all optimized code(UCSS/CCSS/Combined CSS/Combined JS) to be right before the `` tag. (ducpl/Kris Regmi) * **Debug** Under debug mode, cache/purge tags will be plaintext. = 4.4.1 - Sep 16 2021 = * 🐞**ESI** Fixed ESI failure on non-cached pages caused by `DONOTCACHEPAGE` constant. * 🐞**Page Optimize** Fixed an issue where the minified CSS/JS file failed to update when the file was changed. (ceap80) * 🐞**Page Optimize** Fixed an issue where the combined CSS/JS file randomly returned a 404 error when visiting the same URL with different query strings. (Abe) * **API** Added `litespeed_const_DONOTCACHEPAGE` hook to control the cache-or-not result of the `DONOTCACHEPAGE` constant. = 4.4 - Sep 8 2021 = * 🌱**Crawler** Added the ability to enable or disable specific crawlers. (⭐ Contributed by Astrid Wang #PR390) * 🌱**UCSS** Added `UCSS Inline` option. (Ankit). * 🌱**UCSS** Added `UCSS URI Excludes` option. (RC Verma). * 🐞**Page Optimize** Fixed an issue where combined CSS/JS files would potentially return 404 errors after a Purge All. (Special thanks to Abe & Ruikai) * **Page Optimize** Minimized the potential for 404 errors by query string when Purging All. * **Page Optimize** Dropped redundant query strings for minified CSS/JS files. * **Conf** Ugrade configuration safely to avoid the issue of new functions not being found in old codebase. * **Conf** Configuration upgrade process now adds a notification to admin pages and disables configuration save until upgrade is complete. (Lisa) * **JS** Fixed an issue where JS Defer caused a `litespeed_var_1_ is not defined` error when enabled w/ ESI options. (Tobolo) * 🐞**JS** Fixed an issue where `JS Delay` doesn't work for combined JS when `JS Combine` is enabled. (Special thanks to Joshua & Ankit) * **JS** `JS Delay` now will continue loading JS, even if there is an error in the current JS loading process. * 🐞**CCSS** If CCSS fails to generate, Load CSS Asynchronously will now be disabled. (Stars #54074166) * 🐞**UCSS** If UCSS generation fails the generated error will no longer be served inside the file. (Ryan D) * **Log** Updated the Debug log to use less code for prefix. * **3rd** Always respect `DONOTCACHEPAGE` constant definition to fix DIVI dynamic css calculation process. = 4.3 - Aug 16 2021 = * **UCSS** Separated UCSS Purge from CCSS Purge. (⭐ Contributed by Alice Tang #PR388) * 🐞**Cloud** Fixed an issue where CCSS/UCSS quota data failed to update locally. * **Cloud** Added server load as a factor when detecting node availability. * **Cloud** Improved the speed of checking daily quota and showing the related error message. * **Cloud** Added ability to re-detect node availability if the current node is responding w/ a heavy load code. * **Cloud** CCSS/UCSS/LQIP queue now exits immediately when quota is depleted. * **Cloud** Replaced separate `d/regionnodes` with a single `d/nodes` in the node list API for image optimization. * **LQIP** Fixed an issue with LQIP network compatibility. (⭐ Contributed by Alice Tang #PR387) * **GUEST** JS no longer preloads for Guest Optimization. (Ankit) * 🐞**Data** Fixed an issue where deleting the `cssjs` data folder causes a failure in the upgrade process. (Joshua #PR391) * **GUI** Fixed a potential dashboard PHP warning when no queue existed. (jrmora) * **GUI** Added daily quota on dashboard. * **GUI** Added downgrade warning to Toolbox -> Beta Test. * **GUI** Tuned `.litespeed-desc` class to full width in CSS. * **Conf** `Preserve EXIF/XMP data` now defaults to ON due to copyright concerns. (Tobolo) * 🐞**3rd** Fixed a PHP warning when using Google AMP w/ /amp as structure. (thanhstran98) = 4.2 - Jul 29 2021 = * **Cloud** Auto redirect to a new node if the current node is not available anymore. * **Cloud** Combined CCSS/UCSS to sub services of Page Optimization. * **Cloud** Added a daily quota rate limit to help mitigate the heavy service load at the beginning of the month. * **Cloud** Cached the node IP list in order to speed up security check. (Lucas) * 🐞**GUEST** Fixed an issue where Guest Mode remained enabled even when the UA setting is empty. (Stars) * **GUEST** Guest Mode will no longer cache POST requests. * **UCSS** Purging CSS/JS now purges the UCSS queue as well, to avoid failure when generating UCSS. * **UCSS** Separated service entry `UCSS` from `CCSS`. * **CCSS** Simplified `load_queue/save_queue/build_filepath_prefix` functions. (⭐ Contributed by Alice Tang #PR373) * **CCSS** If CCSS request fails, details are now saved in the CSS file. * **CCSS** Renamed CCSS ID in inline HTML from `litespeed-optm-css-rules` to `litespeed-ccss`. (Alice) * **Page Optimize** CCSS/UCSS now supports Cloud queue/notify for asynchronous generation. * **Page Optimize** Simplified CCSS/UCSS generation function. * **Page Optimize** Added the ability to cancel CCSS/UCSS Cloud requests. * **Page Optimize** Unnecessary quesry strings will now be dropped from CSS/JS combined files. * **Crawler** Reset position now resets crawler running status too. * **REST** Cloud request to REST will now detect whether an IP in in the Cloud IP list for security reasons. * **Object** Enhanced Object Cache compatibility for `CONF_FILE` constant detection. * **API** Added shorter alias `litespeed_tag` and other similar aliases for Cache Tag API. * **API** Renamed `LITESPEED_BYPASS_OPTM` to `LITESPEED_NO_OPTM` for Page Optimization. * **Toolbox** Dropped v3.6.4- versions in Beta Test as they will cause a fatal error in downgrade. * **GUI** Added shortcut links to each section on the Dashboard. * **GUI** Added UCSS whitelist usage description. (wyb) * **GUI** Showed the default recommended values for Guest Mode UA/IPs. * **3rd** Fixed AMP plugin compatibility. (⭐ Contributed by Alice Tang #PR368) * **3rd** Bypassed all page optimization including CDN/WebP for AMP pages. * **3rd** Improved compatibility with All in One SEO plugin sitemap. (arnaudbroes/flschaves #Issue372) * **3rd** Added wsform nonce. (#365 cstrouse) * **3rd** Added Easy Digital Download (EDD) & WP Menu Cart nonce. (#PR366 AkramiPro) * **3rd** Improved compatibility w/ Restrict Content Pro. (Abe #PR370) * **3rd** Improved compatibility w/ Gravity Forms. (Ruikai #371) = 4.1 - Jun 25 2021 = * 🌱**UCSS/CCSS/LQIP** Moved queue storage to file system from database wp-options table to lessen the IO load. (#633504) * 🌱**3rd** Added an option to disable ESI for the WooCommerce Cart. (#358 Anna Feng/Astrid Wang) * **ESI** Fixed an ESI nonce issue introduced in v4.0. (Andrew Choi) * **Object** Used new `.litespeed_conf.dat` instead of `.object-cache.ini` for object cache configuration storage. * **Conf** Now updating related files after plugin upgrade and not just after activation. * 🌱**Guest** Added a Guest Mode JS Excludes option. (Ankit/Mamac/Rcverma) * **Guest** Guest Mode now uses a lightweight script to update guest vary for reduced server load. * **Guest** Guest Mode now adds missing image dimensions. * **Guest** Guest vary will no longer update if there's already a vary in place to address the infinite loop caused by CloudFlare's incorrect cache control setting for PHP. * **Guest** Guest vary update request will no longer be sent if `lscache_vary` is already set. * **Guest** Added a Configurable Guest Mode UA/IP under the Tuning tab in the General menu. * **Guest** Guest Mode now allows cron to be hooked, even when UCSS/CCSS options are off. (#338437 Stars) * **Guest** Simplified the vary generation process under Guest Mode. * **Guest** Added a Guest Mode HTML comment for easier debugging. (Ruikai) * **Guest** Guest vary update ajax now bypasses potential POST cache. * **CCSS** Added back the options `Separate CCSS Cache Post Types` and `Separate CCSS Cache URIs`. (Joshua/Ankit) * **CCSS** CCSS/UCSS queue is now limited to a maximum of 500 entries. * **Control** The cache control constant `LSCACHE_NO_CACHE` will now have a higher priority than the Forced Public Cache setting. * **Crawler** The Crawler can now crawl Guest Mode pages. * **Crawler** Fixed a potential XSS vulnerability in the Crawler settings. (#927355) * **Crawler** The Crawler now supports a cookie value of `_null`. (Tobolo) * **Media** Updated the default value for the Responsive Placeholder SVG to be transparent. * **Media** WebP images in the background may now be served in Guest Mode. * **Media** WebP images in CSS may now be bypassed if the requesting Guest Mode client doesn't support WebP. * **Media** Fixed empty default image placeholder under Guest Mode. * 🐞**Image Optimize** Changed the missing `$_POST` to `$post_data` so the database status is properly updated. (#345 Lucas) * **Import** Export file is now readable to allow importing of partial configurations. (Ryan D/Joshua) * **Page Optimize** Fixed W3 validator errors in Guest Mode. (#61393817) * **3rd** A fatal WooCommerce error is no longer triggered by a custom theme reusing a previous LSCWP cache detection tag. * **3rd** AMP may now bypass Guest Mode automatically. * **Localize** Dropped the `Localize Resources` option as Guest Mode is a sufficient replacement. (Note: Due to user feedback during the development period, we have decided to reinstate this option in a future version.) * **Cloud** Changed the WP API url. * **Lang** Corrected a missing language folder. * **GUI** Added a CCSS/UCSS loading page visualization. (⭐ Contributed by Astrid Wang & Anna Feng #PR360) * **GUI** Added a warning to indicate when Guest Mode CCSS/UCSS quota is in use. (Contributed by Astrid Wang & Anna Feng #PR361) * **GUI** Added a `litespeed-info` text color. (Astrid Wang) * **GUI** Implemented various UI/UX improvements. (Joshua/Lisa) * **GUI** Duplicate cloud service messages with the same content will only display once now. (Marc Dahl) * **GUI** Added a WebP replacement warning for Guest Mode Optimization if WebP replacement is off. * **Misc** Dropped `wp_assets` from distribution to reduce the package size. (lowwebtech) * **Misc** Increased the new version and score detection intervals. * **Misc** Optimized WP Assets images. (#352 lowwebtech) * **Debug** Dropped the redundant error_log debug info. = 4.0 - Apr 30 2021 = * 🌱🌱🌱**Guest** Introduced `Guest Mode` for instantly cacheable content on the first visit. * 🌱**UCSS** Added a new service: `Unique CSS`, to drop unused CSS from elements from combined CSS * 🌱**CCSS** Added `HTML Lazyload` option. (Ankit) * 🌱**CCSS** Added `CCSS Per URL` option to allow Critical CSS to be generated for each page instead of for each Post Type. * 🌱**Media** Added `Add Missing Sizes` setting for improving Cumulative Layout Shift. (Fahim) * 🌱**JS** Switched to new JS minification library for better compression and compatibility w/ template literals. (LuminSol) * **Media** WebP may now be replaced in CSS. * **Media** Can now drop image tags in noscript to avoid lazyload. (Abe #314 /mattthomas-photography) * **Media** Bypass optimization if a page is not cacheable. * **Image Optimize** Auto hook to `wp_update_attachment_metadata` to automate image gathering process, and to handle the new thumbnail generation after images are uploaded. (smerriman). * **Image Optimize** Repeated image thumbnails won't be gathered anymore. * **Image Optimize** Simplified the rescan/gather/upload_hook for existing image detection. * **Image Optimize** Fixed the duplicated optimize size records in the postmeta table. (Abe #315) * **Image Optimize** Allow either JSON POST request or normal form request in `notify_img`. (Lucas #313) * **Image Optimize** Optimized SQL query for better efficiency. (lucas/Lauren) * **Image Optimize** Fixed issue where rescan mass created duplicate images. (#954399) * **Image Optimize** Image optimization pie will not show 100% anymore if there is still a small amount in the unfinished queue. * **Image Optimize** WebP generation defaults to ON for Guest Mode. * **Image Optimize** `Priority Line` package now can have smaller request interval. * **ESI** Disable ESI when page is not cacheable. (titsmaker) * **ESI** Fixed an issue where Divi was disabling all in edit mode, but couldn't disable ESI. (Abe) * **ESI** ESI init moved under `init` hook from `plugin_loaded` hook. * **CDN** Add basic support for CloudFlare API Tokens (Abe #320) * **CSS** Simplified `Font Display Optimization` option. * **CSS** Fixed manual cron timeout issue. (jesse Distad) * **CSS** Inline CSS may now use `data-no-optimize` to be excluded from optimization. (popaionut) * **JS** Combined `Load JS Defer` and `Load Inline JS Defer` options. * **JS** Forced async to defer. * **JS** Moved Google Analytics JS from constant default to setting default for removal. * **JS** Fixed potential JS parsing issue caused by JS src being changed to data-src by other plugins. (ankit) * **JS** Excluded spotlight from JS optimize. (tobolo) * **CCSS** Fixed CCSS/UCSS manual cron timeout issue. * **CCSS** Only 10 items will be kept for CCSS history. * **CCSS** The appearance of CCSS Purge in the topbar menu will be determined by the existence of CCSS cache, and not the setting only. * **CCSS** To avoid stuck queues when the current request keeps failing, the CCSS queue will always drop once requested. * **CCSS** CCSS will no longer hide adminbar. * **CCSS** CCSS may now be separate for network subsites. (Joshua) * **CCSS** Gave CCSS a unique filename per URL per user role per subsite. * **CCSS** Dropped `Separate CCSS Cache Post Types` option. * **CCSS** Dropped `Separate CCSS Cache URIs` option. * **CCSS** Subsites purge Avatar/CSS/JS/CCSS will not affect the whole network anymore. * **CCSS** Implemented a better queue list for CCSS that auto collapses if there are more than 20 entries, and shows the total on top. * **CSSJS** Now using separate CSS and JS folders instead of `cssjs`. * **CSSJS** Automatically purge cache after CCSS is generated. * **Network** Dropped network CSS/JS rewrite rules. * **Cache** Send cache tag header whenever adding a tag to make it effective in the page optimization process. * **Core** Used hook for buffer optimization; Used `init()` instead of `constructor`. * **Object** Used `cls` instead of `get_instance` for init. * **Cloud** Replaced one-time message with a dismissible-only message when the domain key has been automatically cleared due to domain/key dismatch. * **API** Dropped function `hook_vary_add()`. * **API** Dropped function `vary_add()`. * **API** Dropped function `filter_vary_cookies()`. * **API** Dropped function `hook_vary()`. * **API** Dropped action `litespeed_vary_add`. * **API** Dropped filter `litespeed_api_vary`. * **API** Use `litespeed_vary_curr_cookies` and `litespeed_vary_cookies` for Vary cookie operations instead. * **API** Dropped action `litespeed_vary_append`. * **Vary** 3rd party vary cookies will not append into .htaccess anymore but only present in response vary header if in use. * **Vary** Dropped function `append()`. * **Vary** Commenter cookie is now considered cacheable. * **Crawler** Minor update to crawler user agent to accommodate mobile_detect.php (Abe #304) * **Data** Added a table truncate function. * **Data** Added new tables url & url_file. * **Data** Dropped cssjs table. * **Data** Options/Summary data is now stored in JSON format to speed up backend visit. (#233250) * **Data** Default `CSS Combine External and Inline` and `JS Combine External and Inline` to On for new installations for better compatibility. * **Purge** Fixed potential purge warning for certain themes. * **Purge** Purge will be stored for next valid visit to trigger if it is initially generated by CLI. * **Page Optimize** `CSS Combine`/`JS Combine` will now share the same file if the contents are the same. Limited disk usage for better file usage and fewer issues with random string problems. * **Page Optimize** Dropped option CSS/JS Cache TTL. * **Page Optimize** Bypass optimization if page not cacheable. * **Page Optimize** Purge CSS/JS will purge the `url_file` table too. * **Page Optimize** Optionally store a vary with a shorter value. * **Page Optimize** Removing query strings will no longer affect external assets. (ankit) * **Page Optimize** Better regex for optimization parsing. * **Page Optimize** Eliminated w3 validator for DNS prefetch and duplicated ID errors. (sumit Pandey) * **Page Optimize** New Optimization for Guest Only option under Tuning. * **Page Optimize** Now forbidding external link redirection for localization. * **Debug** Implemented a better debug format for the 2nd parameter in the log. * **GUI** Bypass page score banner when score is not detected (both 0). (ankit) * **GUI** Fixed deprecated JQuery function warning in WP-Admin. (krzxsiek) = 3.6.4 - Mar 15 2021 = * **Toolbox** Fixed Beta Test upgrade error when upgrading to v3.7+. = 3.6.3 - Mar 10 2021 = * **Core** Fixed potential upgrade failure when new versions have changes in activation related functions. * **Core** Upgrade process won't get deactivated anymore on Network setup. = 3.6.2 - Feb 1 2021 = * **Page Optimize** Fixed an issue where network purge CSS/JS caused 404 errors for subsites. * **Page Optimize** Fixed an issue where purge CSS/JS only caused 404 errors. * **Page Optimize** Added a notice for CSS/JS data detection and potential random string issue. * **Page Optimize** Limited localization resources to specified .js only. (closte #292/ormonk) * **JS** Data src may now be bypassed from JS Combine. (ankit) * **CLI** Fixed a message typo in Purge. (flixwatchsupport) * **Browser** Added font/otf to Browser Cache expire list. (ruikai) * **Data** Updated data files to accept PR from dev branch only. * **3rd** Add data-view-breakpoint-pointer to js_excludes.txt for the Events Calendar plugin. (therealgilles) * **Cloud** Bypassed invalid requests. * **Doc** CDN Mapping description improvement. (mihai A.) = 3.6.1 - Dec 21 2020 = * **WP** Tested up to WP v5.6. * **WebP** Reverted WebP support on Safari Big Sur and Safari v14.0.1+ due to an inability to detect MacOS versions from UA. (@antomal) * **CDN** Dropped the option `Load JQuery Remotely`. * **CDN** Fixed CDN URL replacement issue in optimized CSS files. (@ankit) * **CDN** Fixed an issue where CDN CLI wouldn't set mapping image/CSS/JS to OFF when `false` was the value. * **CDN** Started using React for CDN Mapping settings. * **GUI** Secured Server IP setting from potential XSS issues. (@WonTae Jang) * **Toolbox** Supported both dev and master branches for Beta Test. Latest version updated to v3.6.1. * **Purge** Purge Pages now can purge non-archive pages too. * **Admin** Simplified the admin JS. * **Admin** Limited crawler-related react JS to crawler page only. = 3.6 - Dec 14 2020 = * 🌱**WebP** Added WebP support on Safari Big Sur or Safari v14.0.1+. (@ruikai) * 🐞**Config** Fixed an issue where new installations were not getting the correct default .htaccess content. * **Crawler** Will auto bypass empty sub-sitemap instead of throwing an exception. (@nanoprobes @Tobolo) * **Crawler** Now using React for Cookie Simulation settings instead of Vue.js. Dropped Vue.js. * **Crawler** Dropped `Sitemap Generation` (will only use 3rd party sitemap for crawler). * **CSS** Added `CSS Combine External and Inline` option for backward compatibility. (@lisa) * **Object** Forbid .object-cache.ini visits. (@Tarik) * **Page Optimize** Dropped `Remove Comments` option to avoid combine error. * **CSS** Added a predefined CSS exclude file `data/css_excludes.txt`. * **CSS** Excluded Flatsome theme random inline CSS from combine. * **CSS** Excluded WoodMart theme from combine. (@moemauphie) * **Page Optimize** Excluded tagDiv.com Newspaper theme dynamic CSS/JS from CSS/JS Combine. * **CSS** Added predefined JS defer excludes list. (@Shivam) * **JS** `data-no-defer` option now supports inline JS. (@rafaucau) * **Media** Lazyload inline library is now bypassed by JS Combine. * **Admin** Fixed WP-Admin console ID duplicate warnings. * **Cloud** Dropped QUIC.cloud sync options that have long been unused. * **CSS** Dropped `Unique CSS File` option (UCSS will always generate unique file, will use whitelist to group post type to one CSS). * **GUI** Dropped Help tab. * **Toolbox** Added 3.5.2 to version list. = 3.5.2 - Oct 27 2020 = * **CSS** `CSS Combine` is now compatible w/ inline noscript CSS. (@galbaras) * **GUI** Added ability to manually dismiss the JS option reset message in v3.5.1 upgrade process. (#473917) * 🐞**CSS** `CSS Excludes` setting will no longer lose items beginning w/ `#`. (@ankit) * **API** New `litespeed_media_reset` API function for image editing purposes. (@Andro) = 3.5.1 - Oct 20 2020 = * **JS** Inline JS containing nonces can now be combined. * **JS** Reset JS Combine/Defer to OFF when upgrading to avoid breaking sites. * **JS** Added new option JS Combine External and Inline to allow backwards compatibility. * **JS** Added Inline JS Defer option back. (@ankit) * **Page Optimize** Dropped Inline JS Minify option and merged the feature into JS Minify. * **JS** Pre-added jQuery to the default JS excludes/defer list for better layout compatibility for new users. * **JS** Excluded Stripe/PayPal/Google Map from JS optimization. (@FPCSJames) * **JS** Allowed excluded JS to still be HTTP2 pushed. (@joshua) * **CCSS** Critical CSS now can avoid network pollution from other sites. (@ankit) * **Toolbox** Beta Test now displays recent public versions so it is easier to revert to an older version * **Vary** Server environment variable Vary can now be passed to original server from QUIC.cloud for non-LiteSpeed servers. * **ESI** Improved backward compatibility for ESI nonce list. (@zach E) * 🐞**Misc** Fixed failure of upgrade button on plugin news banner and made cosmetic improvements. * **Doc** Added note that LSCWP works with ClassicPress. = 3.5.0.2 - Sep 30 2020 = * This is a temporary revert fix. Code is SAME as v3.4.2. = 3.5.0.1 - Sep 29 2020 = * 🔥🐞**CSS** Fixed print media query issue when having CSS Combine. (@paddy-duncan) = 3.5 - Sep 29 2020 = * **Page Optimize** Refactored CSS/JS optimization. * **Page Optimize** CSS and JS Combine now each save to a single file without memory usage issues. * **CSS** Inline CSS Minify is now a part of CSS Minify, and will respect the original priorities. (thanks to @galbaras) * **JS** JS Combine now generates a single JS file in the footer. (Special thanks to @ankit) * **JS** JS Combine now combines external JS files, too. (Thanks to @ankit) * **JS** JS Deferred Excludes now uses the original path/filename as keywords instead of the minified path/filename, when JS Minify is enabled. * **JS** JS Combine now combines inline JS, too. * **JS** JS Excludes may now be used for inline JS snippet. * **Page Optimize** Inline CSS Minify and Max Combined File Size retired due to changes listed above. * **CSS** Combined CSS Priority retired due to changes listed above. * **JS** Exclude JQuery, Combined JS Priority, Load Inline JS Deferred, and Inline JS Deferred Excludes retired due to changes listed above. * **JS** Predefined data file data/js_excludes.txt now available for JS Excludes. * **ESI** Predefined data file data/esi.nonces.txt now available for ESI Nonces. * **ESI** Remote Fetch ESI Nonces functionality retired. * **API** Added support for new litespeed_esi_nonces filter. * **Object** Object Cache will not try to reconnect after failure to connect in a single process. * **CCSS** Remote read CSS will add the scheme if it is missing from the URL. * **CCSS** CSS will no longer be prepared for a URL if 404 result is detected. * **CCSS** Fixed most failures caused by third party CSS syntax errors. * **CCSS** Remote read CSS will fix the scheme if the URL doesn't have it. * **CCSS** Excluded 404 when preparing CSS before request. * **CCSS** Adjusted CCSS timeout from 180 seconds to 30 seconds. * **Image Optimize** Fixed the delete attachment database error that occurred when not using the image optimization service yet. * **Media** Added iOS 14 WebP support. * **Data** Fixed database creation failure for MySQL v8. * **Cloud** Error code err_key will clear the domain key in order to avoid duplicate invalid requests. * **Network** Fixed issue with object cache password file storage that occurred when resaving the settings. (#302358) * **Misc** Fixed IP detect compatibility w/ Apache. * **GUI** Fixed the description for Do Not Cache Categories. * **Preload** Upgraded Instant Click to a new stable preload library. (@stasonua0) = 3.4.2 - Sep 8 2020 = * **CCSS** Corrected the issue that wrongly appended non-CSS files to CSS in links before sending request. * **3rd** YITH wishlist now sends a combined single sub request for all widgets contained in one page. (LSWS v5.4.9 build 3+ required) * **ESI** Added support for ESI combine feature. * **GUI** Dropped banner notification for missing domain key when domain key is not initialized. * **Log** When QC whitelist check fails, a detailed failure log is now appended. = 3.4.1 - Sep 2 2020 = * 🐞**CCSS** Fixed an issue where dynamically generated CSS failed with `TypeError: Cannot read property type of undefined`. * 🐞**Page Optimize** Fixed CSS optimization compatibility for CSS dynamically generated with PHP. * **Page Optimize** Added the ability to defer JS even when the resource is excluded from other JS optimizations. (@slr1979) * **ESI** Added support for ESI last parameter inline value. * **3rd** YITH Wishlist, when cached for the first time, will no longer send sub requests. = 3.4 - Aug 26 2020 = * 🌱**LQIP** New setting **LQIP Excludes**. * 🌱**LQIP** Added a Clear LQIP Queue button. * 🌱**CCSS** Added a Clear CCSS Queue button. * **CCSS** Fixed an issue which wrongly included preloaded images in CCSS. (@pixtweaks) * **Network** Primary site and subsite settings now display correctly. * **Page Optimize** Noscript tags generated by LSCWP will only be dropped when the corresponding option is enabled. (@ankit) * **DB Optimize** Fixed database optimizer conflicts w/ object cache transient setting. (#752931) * **3rd** Fixed an issue with WooCommerce product purge when order is placed. * **3rd** Improved WooCommerce product comment compatibility with **WooCommerce Photo Reviews Premium** plugin when using ESI. * **CDN** Fixed Remote jQuery compatibility with WordPress v5.5. (@pixtweaks) * **API** New API `litespeed_purge_all_object` and `litespeed_purged_all_object` action hooks. = 3.3.1 - Aug 12 2020 = * 🌱**Page Optimize** New option to Remove Noscript Tags. (@phuc88bmt) * 🐞**LQIP** Fixed a critical bug that bypassed all requests in v3.3. * **LQIP** Requests are now bypassed if domain has no credit left. * **Page Optimize** Inline defer will be bypassed if document listener is detected in the code. (@ssurfer) * **CCSS** Print-only styles will no longer be included in Critical CSS. * **API** Added hooks to Purge action to handle file deletions. (@biati) * **Cloud** Plain permalinks are no longer required for use of cloud services. * **Data** Added an access denial to work with OpenLiteSpeed. (@spenweb #PR228) * **GUI** Spelling and grammar adjustments. (@blastoise186 #PR253) = 3.3 - Aug 6 2020 = * 🌱**Page Optimize** Added a new setting, Inline JS Deferred Excludes. (@ankit) * **Page Optimize** CSS/JS Combine/Minify file versions will be differentiated by query string hash instead of new filename to reduce DB/file system storage. * **Page Optimize** Added the ability to use local copies of external JS files for better control over page score impacts. * **Page Optimize** Improved combination of CSS media queries. (@galbaras) * **Page Optimize** Reprioritized Inline JS Defer to be optimized before encoding, for a significantly smaller result. * **LQIP** Detect if the file exists before sending LQIP request to QUIC.cloud. * **CCSS** Sped up CCSS process significantly by sending HTML and CSS in request. * **CCSS** Improvements to mobile CSS support in CCSS. * **CCSS** Minimize CCSS failures by attempting to automatically fix CSS syntax errors. * **Cloud** Domain Key will be deleted after QUIC.cloud site_not_registered error to avoid endless repeated requests. * **CDN** CDN Original URL will default to WP Site URL if not set. (@ruikai) * **CLI** Global output format `--format=json/yaml/dump` and `--json` support in CLI. (@alya1992) * **CDN** Improved handling of non-image CSS `url()` sources in CDN. (@daniel McD) * 🐞**CDN** Fixed CDN replacement conflict w/ JS/CSS Optimize. (@ankit) * **Crawler** Only reset Crawler waiting queues when crawling begins. (@ruikai) * **Network** Network Enable Cache is no longer reset to ON Use Network Settings in enabled. (@RavanH) * 🐞**Activation** Fixed a PHP warning that appeared during uninstall. (@RavanH) * **Debug** Automatically omit long strings when dumping an array to debug log. * **Report** Subsites report now shows overwritten values along w/ original values. (#52593959) * **REST** Improved WP5.5 REST compatibility. (@oldrup) * **GUI** Server IP setting moved from Crawler menu to General menu. * **GUI** Localize resources moved to Localization tab. * **Config** News option now defaults to ON. = 3.2.4 - Jul 8 2020 = * **Object** New installations no longer get custom data.ini reset, as this could cause lost configuration. (@Eric) * **ESI** Now using `svar` to load nonces more quickly. (@Lauren) * **ESI** Fixed the conflicts between nonces in inline JS and ESI Nonces when Inline JS Deferred is enabled. (@JesseDistad) * 🐞**ESI** Fixed Fetch Latest Predefined Nonce button. * 🐞**Cache** Fixed an issue where mobile visits were not being cached when Cache Mobile was disabled. * **CDN** Bypass CDN constant `LITESPEED_BYPASS_CDN` now will apply to all CDN replacements. * **Router** Dropped `Router::get_uid()` function. * **Crawler** Updated role simulator function for future UCSS usage. * **GUI** Textarea will now automatically adjust the height based on the number of rows input. * **CLI** Fixed an issue that caused WP-Cron to exit when a task errored out. (@DovidLevine @MatthewJohnson) * **Cloud** No longer communcate with QUIC.cloud when Domain Key is not set and Debug is enabled. * **Cloud** Score banner no longer automatically fetches a new score. (@LucasRolff) = 3.2.3.2 - Jun 19 2020 = * 🔥🐞**Page Optimize** Hotfix for CSS/JS minify/combine. (@jdelgadoesteban @martin_bailey) = 3.2.3.1 - Jun 18 2020 = * **API** New filter `litespeed_buffer_before` and `litespeed_buffer_after`. (#PR243 @joejordanbrown) = 3.2.3 - Jun 18 2020 = * 🌱**Page Optimize** Added Unique CSS option for future removal of unused CSS per page. (@moongear) * **Page Optimize** Fixed an issue where Font Optimization could fail when having Load JS Deferred and Load Inline JS Deferred. (#PR241 @joejordanbrown) * 🐞**Page Optimize** Fixed an issue with Font Display Optimization which caused Google Fonts to load incorrectly. (#PR240 @joejordanbrown @haidan) * 🐞**Network** Use Primary Site Configuration setting for network sites now works properly with Object Cache and Browser Cache. (#56175101) * **API** Added filter `litespeed_is_from_cloud` to detect if the current request is from QC or not. (@lechon) * **ESI** ESI Nonce now can fetch latest list with one click. * **GUI** Updated remaining documentation links & some minor UI tweaks. (@Joshua Reynolds) = 3.2.2 - Jun 10 2020 = * 🌱**Purge** Scheduled Purge URLs now supports wildcard. (#427338) * 🌱**ESI** ESI Nonce supports wildcard match now. * **Network** Use Primary Site Settings now can support Domain Key, and override mechanism improved. (@alican532 #96266273) * **Cloud** Debug mode will now have no interval limit for most cloud requests. (@ruikai) * **Conf** Default Purge Stale to OFF. * **GUI** Purge Stale renamed to Serve Stale. * **Data** Predefined nonce list located in `/litespeed-cache/data/esi.nonce.txt`. Pull requests welcome. * **Debug** Limited parameter log length. * 🐞**CDN** Fixed an issue where upgrading lost value of CDN switch setting. (#888668) * **3rd** Caldera Forms ESI Nonce enhancement. (@paconarud16 @marketingsweet) * **3rd** Elementor now purges correctly after post/page updates. * **3rd** Disabled Page Optimization features on AMP to avoid webfont JS inject. (@rahulgupta1985) = 3.2.1 - Jun 1 2020 = * **Cloud** LQIP/CCSS rate limit tweaks. (@ianpegg) * **Admin** Improved frontend Admin Bar menu functionality. (#708642) * **Crawler** Fixed an issue where cleaning up a crawler map with a leftover page number would cause a MySQL error. (@saowp) * **Image Optimize** Added WP default thumbnails to image optimization summary list. (@johnny Nguyen) * **REST** Improved REST compatibility w/ WP4.4-. (#767203) * **GUI** Moved Use Primary Site Configuration to General menu. (@joshua) = 3.2 - May 27 2020 = * **Image Optimize** Major improvements in queue management, scalability, and speed. (@LucasRolff) * **Cloud** Implemented a series of communication enhancements. (@Lucas Rolff) * **Crawler** Enhanced PHP 5.3 compatibility. (@JTS-FIN #230) * **Page Optimize** Appended image template in wpDiscuz script into default lazyload image exclude list. (@philipfaster @szmigieldesign) * **Page Optimize** Eliminated the 404 issue for CSS/JS in server environments with missing SCRIPT_URI. (@ankit) * **Data** ENhanced summary data storage typecasting. = 3.1 - May 20 2020 = * 🌱**Network** Added Debug settings to network level when on network. * 🐞**Purge** Network now can purge all. * 🐞**Network** Fixed issue where saving the network primary site settings failed. * **Network** Moved Beta Test to network level when on network. * 🐞**Cache** Fixed issue in admin where new post editor was wrongly cached for non-admin roles. (@TEKFused) * 🐞**Data** Fixed issue with crawler & img_optm table creation failure. (@berdini @piercand) * 🐞**Core** Improved plugin activation compatibility on Windows 10 #224 (@greenphp) * **Core** Improved compatibility for .htaccess path search. * **Object** Catch RedisException. (@elparts) * Fixed Script URI issue in 3.0.9 #223 (@aonsyed) * **Image Optimize** Show thumbnail size set list in image optimization summary. (@Johnny Nguyen) * **Debug** Parameters will now be logged. = 3.0.9 - May 13 2020 = * **Purge** Comment cache can be successfully purged now. * **Data** Better MySQL charset support for crawler/image optimize table creation. (@Roshan Jonah) * **API** New hook to fire after Purge All. (@salvatorefresta) * **Crawler** Resolve IP for crawler. * **Task** PHP5.3 Cron compatibility fix. * **3rd** Elementor edit mode compatibility. * **Page Optimize** Fixed an issue where Purge Stale returned 404 for next visitor on CSS/JS. * **Page Optimize** Fixed the PHP warning when srcset doesn't have size info inside. (@gvidano) * **Cloud** Fixed the potential PHP warning when applying for the domain key. * **Core** PHP __DIR__ const replacement. (@MathiasReker) = 3.0.8.6 - May 4 2020 = * **CCSS** Bypassed CCSS functionality on frontend when domain key isn't setup yet. * **Cloud** Fixed WP node redetection bug when node expired. (@Joshua Reynolds) * **Crawler** Fixed an issue where URL is wrongly blacklisted when using ADC. = 3.0.8.5 - May 1 2020 = * 🔥🐞**3rd** Hotfix for WPLister critical error due to v3.0.8.4 changes. * **Image Optimize** Unfinished queue now will get more detailed info to indicate the proceeding status on node. * **CLI** Options can now use true/false as value for bool. (@gavin) * **CLI** Detect error if the ID does not exist when get/set an option value. * **Doc** An API comment typo for `litespeed_esi_load-` is fixed. = 3.0.8.4 - Apr 30 2020 = * 🌱**Crawler** New setting: Sitemap timeout. (#364607) * **Image Optimize** Images that fail to optimize are now counted to increase next request limit. * **Cloud** Redetect fastest node every 3 days. * **Cloud** Suppressed auto upgrade version detection error. (@marc Dahl) * **3rd** 3rd party namespace compatibility. (#366352) = 3.0.8.3 - Apr 28 2020 = * **Cloud** Better compatibility for the Link to QUIC.cloud operation. (@Ronei de Sousa Almeida) * **Image Optimize** Automatically clear invalid image sources before sending requests. (@Richard Hordern) = 3.0.8.2 - Apr 27 2020 = * **GUI** Corrected the Request Domain Key wording. = 3.0.8.1 - Apr 27 2020 = * **Object** Object cache compatibility for upgrade from v2.9.9- versions. = 3.0.8 - Apr 27 2020 = * Released v3 on WordPress officially. = 3.0.4 - Apr 23 2020 = * **Cloud** Apply Domain Key now receives error info in next apply action if failed to generate. * **GUI** Apply Domain Key timeout now displays troubleshooting guidance. * **REST** Added /ping and /token to REST GET for easier debug. * **Cache** Dropped `advanced-cache.php` file detection and usage. = 3.0.3 - Apr 21 2020 = * **Conf** Settings from all options (data ini, defined constant, and forced) will be filtered and cast to expected type. * **Upgrade** CDN mapping and other multiple line settings will now migrate correctly when upgrading from v2 to v3. = 3.0.2 - Apr 17 2020 = * **GUI** More guidance on domain key setting page. * **Cloud** Now Apply Domain Key will append the server IP if it exists in Crawler Server IP setting. = 3.0.1 - Apr 16 2020 = * **Data** Increased timeout for database upgrade related to version upgrade. Display a banner while update in progress. * **Page Optimize** All appended HTML attributes now will use double quotes to reduce the conflicts when the optimized resources are in JS snippets. = 3.0 - Apr 15 2020 = * 🌱**Media** LQIP (Low Quality Image Placeholder). * 🌱**Page Optimize** Load Inline JS Deferred Compatibility Mode. (Special thanks to @joe B - AppsON) * 🌱**Cloud** New QUIC.cloud API key setting. * 🌱**ESI** New ESI nonce setting. * 🌱**Media** JPG quality control. (@geckomist) * 🌱**Media** Responsive local SVG placeholder. * 🌱**Discussion** Gravatar warmup cron. * 🌱**DB** Table Engine Converter tool. (@johnny Nguyen) * 🌱**DB** Database summary: Autoload size. (@JohnnyNguyen) * 🌱**DB** Database summary: Autoload entries list. * 🌱**DB** Revisions older than. (@thememasterguru) * 🌱**Cache** Forced public cache setting. (#308207) * 🌱**Crawler** New timeout setting to avoid incorrect blacklist addition. (#900171) * 🌱**Htaccess** Frontend & backend .htaccess path customize. (@jon81) * 🌱**Toolbox** Detailed Heartbeat Control (@K9Heaven) * 🌱**Purge** Purge Stale setting. * 🌱**Page Optimize** Font display optimization. (@Joeee) * 🌱**Page Optimize** Google font URL display optimization. * 🌱**Page Optimize** Load Inline JS deferred. * 🌱**Page Optimize** Store gravatar locally. (@zzTaLaNo1zz @JohnnyNguyen) * 🌱**Page Optimize** DNS prefetch control setting. * 🌱**Page Optimize** Lazy Load Image Parent Class Name Excludes. (@pako69) * 🌱**Page Optimize** Lazy load iframe class excludes. (@vnnloser) * 🌱**Page Optimize** Lazy load exclude URIs. (@wordpress_fan1 @aminaz) * 🌱**GUI** New Dashboard and new menus. * 🌱**Image Optimize** Supported GIF WebP optimization. (@Lucas Rolff) * 🌱**Image Optimize** New workflow for image optimization (Gather first, request second). * 🌱**Image Optimize** The return of Rescan. * 🌱**CLI** Get single option cmd. * 🌱**CLI** QUIC.cloud cmd supported. * 🌱**CLI** CLI can send report now. * 🌱**Health** Page speed and page score now are in dashboard. * 🌱**Conf** Supported consts overwritten of `LITESPEED_CONF__` for all settings. (@menathor) * 🌱**REST** New REST TTL setting. (@thekendog) * 🌱**CDN** New setting `HTML Attribute To Replace`. CDN can now support any HTML attribute to be replaced. (@danushkaj91) * 🌱**Debug** Debug URI includes/excludes settings. * 🌱**Crawler** 🐞 Support for multiple domains in custom sitemap. (@alchem) * 🌱**Crawler** New Crawler dashboard. New sitemap w/ crawler status. New blacklist w/ reason. * 🌱**Media** LQIP minimum dimensions setting. (@Lukasz Szmigiel) * **Crawler** Able to add single rows to blacklist. * **Crawler** Crawler data now saved into database instead of creating new files. * **Crawler** Larger timeout to avoid wrongly added to blacklist. * **Crawler** Manually changed the priority of mobile and WebP. (@rafaucau) * **Browser** Larger Browser Cache TTL for Google Page Score improvement. (@max2348) * **Task** Task refactored. Disabled cron will not show in cron list anymore. * **Task** Speed up task load speed. * **ESI** Added Bloom nonce to ESI for Elegant Themes. * **Cloud** Able to redetect cloud nodes now. * **Img_optm** Fixed stale data in redirected links. * **Lazyload** CSS class `litespeed_lazyloaded` is now appended to HTML body after lazyload is finished. (@Adam Wilson) * **Cache** Default drop qs values. (@gijo Varghese) * **LQIP** Show all LQIP images in Media column. * **CDN** Can now support custom REST API prefix other than wp-json. (#174 @therealgilles) * **IAPI** Used REST for notify/destroy/check_img; Removed callback passive/aggreesive IAPI func * **CSSJS** Saved all static files to litespeed folder; Uninstallation will remove static cache folder too; Reduced .htaccess rules by serving CSS/JS directly. * **Object** Fixed override different ports issue. (@timofeycom #ISSUE178) * **Conf** DB Tables will now only create when activating/upgrading/changing settings. * **DB** Simplified table operation funcs. * **CSSJS** Bypassed CSS/JS generation to return 404 if file is empty (@grubyy) * **CSSJS** Inline JS defer will not conflict with JS inline optm anymore. * **CDN** settings will not be overwritten by primary settings in network anymore. (@rudi Khoury) * **OPcache** Purged all opcache when updating cache file. (@closte #170) * **CLI** CLI cmd renamed. * **CLI** Well-formatted table to show all options. * **Purge** Only purge related posts that have a status of "published" to avoid unnecessary "draft" purges. (@Jakub Knytl) * **GUI** Removed basic/adv mode for settings. Moved non-cache settings to its own menu. * **Htaccess** Protected .htaccess.bk file. Only kept one backup. (@teflonmann) * **Crawler** Crawler cookie now support `_null` as empty value. * **Crawler** Avoid crawler PHP fatal error on Windows OS. (@technisolutions) * **Admin** Simplified admin setting logic. * **Conf** Multi values settings now uniformed to multi lines for easier setting. * **Conf** New preset default data file `data/consts.default.ini`. * **Conf** Config setting renamed and uniformed. * **Conf** Dropped `Conf::option()`. Used `Conf::val()` instead. * **Conf** Improved conf initialization and upgrade conversion workflow. * **Core** Code base refactored. New namespace LiteSpeed. * **API** New API: iframe lazyload exclude filter. * **GUI** human readable seconds. (@MarkCanada) * **API** API refactored. * NOTE: All 3rd party plugins that are using previous APIs, especially `LiteSpeed_Cache_API`, need to be adjusted to the latest one. Same for ESI blocks.* ESI shortcode doesn't change. * **API** New hook `litespeed_update_confs` to settings update. * **API** New Hooks `litespeed_frontend_shortcut` and `litespeed_backend_shortcut` for dropdown menu. (@callaloo) * **API** Removed `litespeed_option_*` hooks. Use `litespeed_force_option` hook insteadly * **API** Renamed `litespeed_force_option` to `litespeed_conf_force`. * **API** Removed function `litespeed_purge_single_post`. * **REST** New rest API to fetch public IP. * **GUI** Hiding Cloudflare/Object Cache/Cloud API key credentials. (@menathor) * **GUI** Renamed all backend link tag from lscache to litespeed. * **GUI** fixed duplicated form tag. * **GUI** Fix cron doc link. (@arnab Mohapatra) * **GUI** Frontend adminbar menu added `Purge All` actions. (@Monarobase) * **GUI** Localized vue.js to avoid CloudFlare cookie. (@politicske) * **GUI** Always show optm column in Media Library for future single row optm operation. (@mikeyhash) * **GUI** Displayed TTL range below the corresponding setting. * **GUI** GUI refactored. * **Debug** Report can now append notes. * **3rd** Default added parallax-image to webp replacement for BB. * **3rd** User Switching plugin compatibility. (@robert Staddon) * **3rd** Beaver Builder plugin compatibility with v3.0. * **3rd** Avada plugin compatibility w/ BBPress. (@pimg) * **3rd** WooCommerce PayPal Checkout Gateway compatibility. (#960642 @Glen Cabusas) * **Network** Fixed potential timeout issue when containing a large volume of sites. (@alican532) * **Debug** `Disable All Features` now will see the warning banner if ON. * **Debug** Dropped `log filters` section. * **Debug** Debug and Tools sections combined into new `Toolbox` section. * 🐞**Crawler** Multi sites will now use separate sitemap even when `Use Primary Site` is ON. (@mrhuynhanh) * 🐞**Img_optm** Fixed large volume image table storage issue. (#328956) * 🐞 **Cloud** Cloud callback hash validation fixed OC conflict. (@pbpiotr) * 🎊 Any user that had the contribution to our WP community or changelog (even just bug report/feedback/suggestion) can apply for extra credits in QUIC.cloud. = 2.9.9.2 - Nov 24 2019 = * 🌱**GUI** New settings to limit News Feed to plugin page only. = 2.9.9.1 - Nov 18 2019 = * 🌱**Env** Environment Report can now append a passwordless link for support access without wp-admin password. * **Admin** The latest v3.0 beta test link may now be shown on the admin page when it's available. * **3rd** Compatibility with [DoLogin Security](https://wordpress.org/plugins/dologin/). * 🐞**ESI** Fixed a failure issue with Vary Group save. (@rafasshop) * 🐞**3rd** In browsers where WebP is not supported, Divi image picker will no longer serve WebP. (@Austin Tinius) = 2.9.9 - Oct 28 2019 = * Core: Preload all classes to avoid getting error for upcoming v3.0 upgrade. * Object: Improved compatibility with upcoming v3.0 release. * ESI: Unlocked ESI for OLS in case OLS is using QUIC.cloud CDN which supports ESI. * 3rd: Elementor Edit button will now show when ESI enabled. (#PR149 #335322 @maxgorky) * 🐞Media: Fixed missing Media optimization column when Admin role is excluded from optimization in settings. (@mikeyhash @pako69 @dgilfillan) = 2.9.8.7 - Oct 11 2019 = * 3rd: Enhanced WP stateless compatibility. (#PR143) * 3rd: Fixed a PHP warning caused by previous PR for AMP. (#PR176) = 2.9.8.6 - Sep 24 2019 = * 3rd: Bypassed page optimizations for AMP. (#359748 #PR169) * GUI: Firefox compatibility with radio button state when reloading pages. (#288940 #PR162) * GUI: Updated Slack invitation link. (#PR173) = 2.9.8.5 - Aug 21 2019 = * CCSS: Removed potential PHP notice when getting post_type. (@amcgiffert) * CDN: Bypassed CDN replacement on admin page when adding media to page/post. (@martin_bailey) * 🐞Media: Fixed inability to update or destroy postmeta data for child images. (#167713) = 2.9.8.4 - Jul 25 2019 = * Object: Increased compatibility with phpredis 5.0. * Object: Appended `wc_session_id` to default Do Not Cache Groups setting to avoid issue where WooCommerce cart items were missing when Object Cache is used. NOTE: Existing users must add `wc_session_id` manually! (#895333) * CSS: Added null onload handler for CSS async loading. (@joejordanbrown) * 🕷️: Increased crawler timeout to avoid wrongly adding a URL to the blacklist. * 3rd: WooCommerce Advanced Bulk Edit can now purge cache automatically. = 2.9.8.3 - Jul 9 2019 = * CSS: Enhanced the CSS Minify compatibility for CSS with missing closing bracket syntax errors. (@fa508210020) * 🕷️: Crawler now supports both cookie and no-cookie cases. (@tabare) * CCSS: Enhanced compatibility with requested pages where meta info size exceeds 8k. (@Joe B) * CCSS: No longer processing "font" or "import" directives as they are not considered critical. (@Ankit @Joe B) * IAPI: Removed IPv6 from all servers to avoid invalid firewall whitelist. = 2.9.8.2 - Jun 17 2019 = * 🔥🐞 3rd: Fixed PHP 5.3 compatibility issue with Facetwp. = 2.9.8.1 - Jun 17 2019 = * 3rd: Set ESI template hook priority to highest number to prevent ESI conflict with Enfold theme. (#289354) * 3rd: Improved Facetwp reset button compatibility with ESI. (@emilyel) * 3rd: Enabled user role change to fix duplicate login issue for plugins that use alternative login processes. (#114165 #717223 @sergiom87) * GUI: Wrapped static text with translate function. (@halilemreozen) = 2.9.8 - May 22 2019 = * Core: Refactored loading priority so user related functions & optimization features are set after user initialization. (#717223 #114165 #413338) * Media: Improved backup file calculation query to prevent out-of-memory issue. * Conf: Feed cache now defaults to ON. * API: Fully remote attachment compatibility API of image optimization now supported. * 🕷️: Bypassed vary change for crawler; crawler can now simulate default vary cookie. * ESI: Refactored ESI widget. Removed `widget_load_get_options()` function. * ESI: Changed the input name of widget fields in form. * 3rd: Elementor can now save ESI widget settings in frontend builder. * 3rd: WP-Stateless compatibility. * IAPI: Image optimization can now successfully finish the destroy process with large volume images with automatic continual mode. * 🐞CDN: Fixed issue with Load JQuery Remotely setting where WP 5.2.1 provided an unexpected jQuery version. * 🐞3rd: Login process now gets the correct role; fixed double login issue. = 2.9.7.2 - May 2 2019 = * Conf: Enhanced compatibility when an option is not properly initialized. * Conf: Prevent non-array instance in widget from causing 500 error. (#210407) * CCSS: Increase CCSS generation timeout to 60s. * Media: Renamed lazyload CSS class to avoid conflicts with other plugins. (@DynamoProd) * JS: Improved W3 validator. (@istanbulantik) * QUIC: Synced cache tag prefix for static files cache. * ESI: Restored query strings to ESI admin bar for accurate rendering. (#977284) * ESI: Tweaked ESI init priority to honor LITESPEED_DISABLE_ALL const. ESI will now init after plugin loaded. * 🐞ESI: No longer initialize ESI if ESI option is OFF. * API: New "Disable All" API function. * API: New "Force public cache" API function. * 🐞Vary: Fixed an issue with saving vary groups. * 🐞IAPI: Fixed an issue where image md5 validation failed due to whitespace in the image path. * 🐞3rd: Bypass all optimization/ESI/Cache features when entering Divi Theme Builder frontend editor. * 🐞3rd: Fixed an issue where DIVI admin bar exit button didn't work when ESI was ON. = 2.9.7.1 - Apr 9 2019 = * Purge: Purge All no longer includes Purge CCSS/Placeholder. * 3rd: Divi Theme Builder no longer experiences nonce expiration issues in the contact form widget. (#475461) = 2.9.7 - Apr 1 2019 = * 🌱🌱🌱 QUIC.cloud CDN feature. Now Apache/Nginx can use LiteSpeed cache freely. = 2.9.6 - Mar 27 2019 = * 🌱IAPI: Appended XMP to `Preserve EXIF data` setting. WebP will now honor this setting. (#902219) * Object: Fixed SASL connection with LSMCD. * ESI: Converted ESI URI parameters to JSON; Added ESI validation. * Import: Import/Export will now use JSON format. Please re-export any backed up settings. Previous backup format is no longer recognized. * Media: WebP replacement will honor `Role Excludes` setting now. (@mfazio26) * Data: Forbid direct visit to const.default.ini. * Utility: Can handle WHM passed in `LITESPEED_ERR` constant now. * IAPI: Communicate via JSON encoding. * IAPI: IAPI v2.9.6. = 2.9.5 - Mar 14 2019 = * 🌱 Auto convert default WordPress nonce to ESI to avoid expiration. * 🌱 API: Ability to easily convert custom nonce to ESI by registering `LiteSpeed_Cache_API::nonce_action`. * OPTM: Tweaked redundant attr `data-no-optimize` in func `_analyse_links` to `data-ignore-optimize` to offer the API to bypass optimization but still move src to top of source code. * API: Renamed default nonce ESI ID from `lscwp_nonce_esi` to `nonce`. * API: Added WebP generation & validation hook API. (@alim #wp-stateless) * API: Added hook to bypass vary commenter check. (#wpdiscuz) * Doc: Clarified Cache Mobile description. (@JohnnyNguyen) * Doc: Replaced incorrect link in description. (@JohnnyNguyen) * 3rd: Improved wpDiscuz compatibility. * 🐞3rd: Fixed Divi Theme Builder comment compatibility on non-builder pages. (#410919) * 3rd: Added YITH ESI adjustment. = 2.9.4.1 - Feb 28 2019 = * 🔥🐞Tag: Fixed issue where unnecessary warning potentially displayed after upgrade process when object cache is enabled. = 2.9.4 - Feb 27 2019 = * 🐞REST: New REST class with better WP5 Gutenberg and internal REST call support when ESI is embedded. * ESI: ESI block ID is now in plain text in ESI URL parameters. * 🐞ESI: Fixed a redundant ESI 301 redirect when comma is in ESI URL. * ESI: REST call can now parse shortcodes in ESI. * API: Changed ESI `parse_esi_param()` function to private and `load_esi_block` function to non-static. * API: Added `litespeed_is_json` hook for buffer JSON conversion. * GUI: Prepended plugin name to new version notification banner. * 3rd: WPML multi domains can now be handled in optimization without CDN tricks. = 2.9.3 - Feb 20 2019 = * ESI: ESI shortcodes can now be saved in Gutenberg editor. * ESI: ESI now honors the parent page JSON data type to avoid breaking REST calls (LSWS 5.3.6+). * ESI: Added is_json parameter support for admin_bar. * ESI: Simplified comment form code. * 3rd: Better page builder plugin compatibility within AJAX calls. * 3rd: Compatibility with FacetWP (LSWS 5.3.6+). * 3rd: Compatibility with Beaver Builder. * Debug: Added ESI buffer content to log. * Tag: Only append blog ID to cache tags when site is part of a network. * IAPI: Optimized database query for pulling images. * GUI: Added more plugin version checking for better feature compatibility. * GUI: Ability to bypass non-critical banners with the file .litespeed_no_banner. * Media: Background image WebP replacement now supports quotes around src. = 2.9.2 - Feb 5 2019 = * API: Add a hook `litespeed_esi_shortcode-*` for ESI shortcodes. * 3rd: WooCommerce can purge products now when variation stock is changed. * 🐞🕷️: Forced HTTP1.1 for crawler due to a CURL HTTP2 bug. = 2.9.1 - Jan 25 2019 = * Compatibility: Fixed fatal error for PHP 5.3. * Compatibility: Fixed PHP warning in htmlspecialchars when building URLs. (@souljahn2) * Media: Excluded invalid image src from lazyload. (@andrew55) * Optm: Improved URL compatibility when detecting closest cloud server. * ESI: Supported JSON format comment format in ESI with `is_json` parameter. * API: Added filters to CCSS/CSS/JS content. (@lhoucine) * 3rd: Improved comment compatibility with Elegant Divi Builder. * IAPI: New Europe Image Optimization server (EU5). Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips). * GUI: No longer show banners when `Disable All` in `Debug` is ON. (@rabbitwordpress) * GUI: Fixed button style for RTL languages. * GUI: Removed unnecessary translation in report. * GUI: Updated readme wiki links. * GUI: Fixed pie styles in image optimization page. = 2.9 - Dec 31 2018 = * 🌱Media: Lazy Load Image Classname Excludes. (@thinkmedia) * 🌱: New EU/AS cloud servers for faster image optimization handling. * 🌱: New EU/AS cloud servers for faster CCSS generation. * 🌱: New EU/AS cloud servers for faster responsive placeholder generation. * 🌱Conf: Ability to set single options via link. * 🌱Cache: Ability to add custom TTLs to Force Cache URIs. * Purge: Added post type to Purge tags. * Purge: Redefined CCSS page types. * Core: Using Exception for .htaccess R/W. * IAPI: New cloud servers added. Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips). * Optm: Trim BOM when detecting if the page is HTML. * GUI: Added PageSpeed Score comparison into promotion banner. * GUI: Refactored promotion banner logic. * GUI: Removed page optimized comment when ESI Silence is requested. * GUI: WHM transient changed to option instead of transient when storing. * GUI: Appending more descriptions to CDN filetype setting. * IAPI: Removed duplicate messages. * IAPI: Removed taken_failed/client_pull(duplicated) status. * Debug: Environment report no longer generates hash for validation. * 3rd: Non-cacheable pages no longer punch ESI holes for Divi compatibility. * 🐞Network: Added slashes for mobile rules when activating plugin. * 🐞CCSS: Eliminated a PHP notice when appending CCSS. = 2.8.1 - Dec 5 2018 = * 🐞🕷️: Fixed an activation warning related to cookie crawler. (@kacper3355 @rastel72) * 🐞Media: Replace safely by checking if pulled images is empty or not first. (@Monarobase) * 3rd: Shortcode ESI compatibility with Elementor. = 2.8 - Nov 30 2018 = * 🌱: ESI shortcodes. * 🌱: Mobile crawler. * 🌱: Cookie crawler. * API: Can now add `_litespeed_rm_qs=0` to bypass Remove Query Strings. * Optm: Removed error log when minify JS failed. * 🐞Core: Fixed a bug that caused network activation PHP warning. * Media: Removed canvas checking for WebP to support TOR. (@odeskumair) * Media: Eliminated potential image placeholder PHP warning. * 3rd: Bypassed Google recaptcha from Remove Query Strings for better compatibility. * IAPI: Showed destroy timeout details. * Debug: Moved Google Fonts log to advanced level. * GUI: Replaced all Learn More links for functions. * GUI: Cosmetic updates including Emoji. * 🕷️: Removed duplicated data in sitemap and blacklist. = 2.7.3 - Nov 26 2018 = * Optm: Improved page render speed with Web Font Loader JS library for Load Google Fonts Asynchronously. * Optm: Directly used JS library files in plugin folder instead of short links `/min/`. * Optm: Handled exceptions in JS optimization when meeting badly formatted JS. * 3rd: Added Adobe Lightroom support for NextGen Gallery. * 3rd: Improved Postman app support for POST JSON requests. * IAPI: US3 server IP changed to 68.183.60.185. = 2.7.2 - Nov 19 2018 = * 🌱: Auto Upgrade feature. * CDN: Bypass CDN for cron to avoid WP jQuery deregister warning. = 2.7.1 - Nov 15 2018 = * 🌱CLI: Ability to set CDN mapping by `set_option litespeed-cache-cdn_mapping[url][0] https://url`. * 🌱CDN: Ability to customize default CDN mapping data in default.ini. * 🌱API: Default.ini now supports both text-area items and on/off options. * Vary: Refactored Vary and related API. * Vary: New hook to manipulate vary cookies value. * Core: Activation now can generate Object Cache file. * Core: Unified Object Cache/rewrite rules generation process across activation/import/reset/CLI. * Core: Always hook activation to make activation available through the front end. * 🐞IAPI: Fixed a bug where environment report gave incorrect image optimization data. * 🐞OLS: Fixed a bug where login cookie kept showing a warning on OpenLiteSpeed. * 🐞Core: Fixed a bug where Import/Activation/CLI was missing CDN mapping settings. * API: Filters `litespeed_cache_media_lazy_img_excludes/litespeed_optm_js_defer_exc` passed-in parameter is changed from string to array. = 2.7 - Nov 2 2018 = * 🌱: Separate Purge log for better debugging. * 3rd: Now fully compatible with WPML. * IAPI: Sped up Image Optimization workflow. * GUI: Current IP now shows in Debug settings. * GUI: Space separated placeholder queue list for better look. * IAPI: EU3 server IP changed to 165.227.131.98. = 2.6.4.1 - Oct 25 2018 = * 🔥🐞Media: Fixed a bug where the wrong table was used in the Image Optimization process. * IAPI: IAPI v2.6.4.1. = 2.6.4 - Oct 24 2018 = * 🌱: Ability to create custom default config options per hosting company. * 🌱: Ability to generate mobile Critical CSS. * 🐞Media: Fixed a bug where Network sites could incorrectly override optimized images. * 🐞CDN: Fixed a bug where image URLs containing backslashes were matched. * Cache: Added default Mobile UA config setting. * GUI: Fixed unknown shortcut characters for non-English languages Setting tabs. = 2.6.3 - Oct 18 2018 = * 🌱: Ability to Reset All Options. * 🌱CLI: Added new `lscache-admin reset_options` command. * GUI: Added shortcuts for more of the Settings tabs. * Media: Updated Lazy Load JS library to the most recent version. * There is no longer any need to explicitly Save Settings upon Import. * Remove Query String now will remove *all* query strings in JS/CSS static files. * IAPI: Added summary info to debug log. = 2.6.2 - Oct 11 2018 = * Setting: Automatically correct invalid numeric values in configuration settings upon submit. * 🐞Media: Fixed the issue where iframe lazy load was broken by latest Chrome release. (@ofmarconi) * 🐞: Fixed an issue with Multisite where subsites failed to purge when only primary site has WooCommerce . (@kierancalv) = 2.6.1 - Oct 4 2018 = * 🌱: Ability to generate separate Critical CSS Cache for Post Types & URIs. * API: Filter `litespeed_frontend_htaccess` for frontend htaccess path. * Media: Removed responsive placeholder generation history to save space. = 2.6.0.1 - Sep 24 2018 = * 🔥🐞: Fixed an issue in responsive placeholder generation where redundant history data was being saved and using a lot of space. = 2.6 - Sep 22 2018 = * Vary: Moved `litespeed_cache_api_vary` hook outside of OLS condition for .htaccess generation. * CDN: Trim spaces in original URL of CDN setting. * API: New filter `litespeed_option_` to change all options dynamically. * API: New `LiteSpeed_Cache_API::force_option()` to change all options dynamically. * API: New `LiteSpeed_Cache_API::vary()` to set default vary directly for easier compaitiblity with WPML WooCommerce Multilingual. * API: New `LiteSpeed_Cache_API::nonce()` to safely and easily allow caching of wp-nonce. * API: New `LiteSpeed_Cache_API::hook_vary_add()` to add new vary. * Optm: Changed HTML/JS/CSS optimization options assignment position from constructor to `finalize()`. * Doc: Added nonce to FAQ and mentioned nonce in 3rd Party Compatibility section. * GUI: Moved inline minify to under html minify due to the dependency. * 3rd: Cached Aelia CurrencySwitcher by default. * 🐞: Fixed issue where enabling remote JQuery caused missing jquery-migrate library error. = 2.5.1 - Sep 11 2018 = * 🌱 Responsive placeholder. (@szmigieldesign) * Changed CSS::ccss_realpath function scope to private. * 🐞 Detected JS filetype before optimizing to avoid PHP source conflict. (@closte #50) = 2.5 - Sep 6 2018 = * [IMPROVEMENT] CLI can now execute Remove Original Image Backups. (@Shon) * [UPDATE] Fixed issue where WP-PostViews documentation contained extra slashes. (#545638) * [UPDATE] Check LITESPEED_SERVER_TYPE for more accurate LSCache Disabled messaging. * [IAPI] Fixed a bug where optimize/fetch error notification was not being received. (@LucasRolff) = 2.4.4 - Aug 31 2018 = * [NEW] CLI can now support image optimization. (@Shon) * [IMPROVEMENT] GUI Cron/CLI will not create admin message anymore. * [UPDATE] Media Fixed a PHP notice that appeared when pulling optimized images. * [UPDATE] Fixed a PHP notice when detecting origin of ajax call. (@iosoft) * [DEBUG] Debug log can now log referer URL. * [DEBUG] Changes to options will now be logged. = 2.4.3 - Aug 27 2018 = * [NEW] Media Ability to inline image lazyload JS library. (@Music47ell) * [IMPROVEMENT] Media Deleting images will now clear related optimization file & info too. * [IMPROVEMENT] Media Non-image postfix data will now be bypassed before sending image optimization request. * [BUGFIX] CDN CDN URL will no longer be replaced during admin ajax call. (@pankaj) * [BUGFIX] CLI WPCLI can now save options without incorrectly clearing textarea items. (@Shon) * [GUI] Moved Settings above Manage on the main menu. = 2.4.2 - Aug 21 2018 = * [IMPROVEMENT] Media Sped up Image Optimization process by replacing IAPI server pull communication. * [IMPROVEMENT] Media Ability to delete optimized WebP/original image by item in Media Library. (@redgoodapple) * [IMPROVEMENT] CSS Optimize Generate new optimized CSS name based on purge timestamp. Allows CSS cache to be cleared for visitors. (@bradbrownmagic) * [IMPROVEMENT] API added litespeed_img_optm_options_per_image. (@gintsg) * [UPDATE] Stopped showing "No Image Found" message when all images have finished optimization. (@knutsp) * [UPDATE] Improved a PHP warning when saving settings. (@sergialarconrecio) * [UPDATE] Changed backend adminbar icon default behavior from Purge All to Purge LSCache. * [UPDATE] Clearing CCSS cache will clear unfinished queue too. * [UPDATE] Added "$" exact match when adding URL by frontend adminbar dropdown menu, to avoid affecting any sub-URLs. * [UPDATE] Fixed IAPI error message showing array bug. (@thiomas) * [UPDATE] Debug Disable All will do a Purge All. * [UPDATE] Critical CSS server IP changed to 142.93.3.57. * [GUI] Showed plugin update link for IAPI version message. * [GUI] Bypassed null IAPI response message. * [GUI] Grouped related settings with indent. * [IAPI] Added 503 handler for IAPI response. * [IAPI] IAPI v2.4.2. * [IAPI] Center Server IP Changed from 34.198.229.186 to 142.93.112.87. = 2.4.1 - Jul 19 2018 = * [NEW FEATURE] Media Auto Level Up. Auto refill credit. * [NEW FEATURE] Media Auto delete original backups after pulled. (@borisov87 @JMCA2) * [NEW FEATURE] Media Auto request image optimization. (@ericsondr) * [IMPROVEMENT] Media Fetch 404 error will notify client as other errors. * [IMPROVEMENT] Media Support WebP for PageSpeed Insights. (@LucasRolff) * [BUGFIX] CLI Fixed the issue where CLI import/export caused certain textarea settings to be lost. (#767519) * [BUGFIX] CSS Optimize Fixed the issue that duplicated optimized CSS and caused rapid expansion of CSS cache folder. * [GUI] Media Refactored operation workflow and interface. * [UPDATE] Media Set timeout seconds to avoid pulling timeout. (@Jose) * [UPDATE] CDNFixed the notice when no path is in URL. (@sabitkamera) * [UPDATE] Media Auto correct credits when pulling. * [UPDATE] GUI Removed redundant double quote in gui.cls. (@DaveyJake) * [IAPI] IAPI v2.4.1. * [IAPI] Allow new error status notification and success message from IAPI. = 2.4 - Jul 2 2018 = * [NEW FEATURE] Media Added lossless optimization. * [NEW FEATURE] Media Added Request Original Images ON/OFF. * [NEW FEATURE] Media Added Request WebP ON/OFF. (@JMCA2) * [IMPROVEMENT] Media Improved optimization tools to archive maximum compression and score. * [IMPROVEMENT] Media Improved speed of image pull. * [IMPROVEMENT] Media Automatically recover credit after pulled. * [REFACTOR] Config Separated configure const class. * [BUGFIX] Report Report can be sent successfully with emoji now. (@music47ell) * [IAPI] New Europe Image Optimization server (EU3/EU4). * [IAPI] New America Image Optimization server (US3/US4/US5/US6). * [IAPI] New Asian Image Optimization server (AS3). * [IAPI] Refactored optimization process. * [IAPI] Increased credit limit. * [IAPI] Removed request interval limit. * [IAPI] IAPI v2.4. * We strongly recommended that you re-optimize your image library to get a better compression result. = 2.3.1 - Jun 18 2018 = * [IMPROVEMENT] New setting to disable Generate Critical CSS. (@cybmeta) * [IMPROVEMENT] Added filter to can_cdn/can_optm check. (@Jacob) * [UPDATE] *Critical CSS* Added 404 css. Limit cron interval. * [UPDATE] AJAX will not bypass CDN anymore by default. (@Jacob) * [GUI] Show Disable All Features warning if it is on in Debug tab. = 2.3 - Jun 13 2018 = * [NEW FEATURE] Automatically generate critical CSS. (@joeee @ivan_ivanov @3dseo) * [BUGFIX] "Mark this page as..." from dropdown menu will not reset settings anymore. (@cbratschi) = 2.2.7 - Jun 4 2018 = * [IMPROVEMENT] Improved redirection for manual image pull to avoid too many redirections warning. * [IAPI] Increased credit limit. * [BUGFIX] Fixed 503 error when enabling log filters in Debug tab. (#525206) * [UPDATE] Improve compatibility when using sitemap url on servers with allow_url_open off. * [UPDATE] Removed Crawler HTTP2 option due to causing no-cache blacklist issue for certain environments. * [UPDATE] Privacy policy can be now translated. (@Josemi) * [UPDATE] IAPI Increased default img request max to 3000. = 2.2.6 - May 24 2018 = * [NEW FEATURE] Original image backups can be removed now. (@borisov87 @JMCA2) * [BUGFIX] Role Excludes in Tuning tab can save now. (@pako69) * [UPDATE] Added privacy policy support. = 2.2.5 - May 14 2018 = * [IAPI] Image Optimization New Asian Image Optimization server (AS2). * [INTEGRATION] Removed wpForo 3rd party file. (@massimod) = 2.2.4 - May 7 2018 = * [IMPROVEMENT] Improved compatibility with themes using the same js_min library. (#129093 @Darren) * [BUGFIX] Fixed a bug when checking image path for dynamic files. (@miladk) * [INTEGRATION] Compatibility with Universal Star Rating. (@miladk) = 2.2.3 - Apr 27 2018 = * [NEW FEATURE] WebP For Extra srcset setting in Media tab. (@vengen) * [REFACTOR] Removed redundant LS consts. * [REFACTOR] Refactored adv_cache generation flow. * [BUGFIX] Fixed issue where inline JS minify exception caused a blank page. (@oomskaap @kenb1978) * [UPDATE] Changed HTTP/2 Crawl default value to OFF. * [UPDATE] Added img.data-src to default WebP replacement value for WooCommerce WebP support. * [UPDATE] Detached crawler from LSCache LITESPEED_ON status. * [API] Improved ESI API to honor the cache control in ESI wrapper. * [API] Added LITESPEED_PURGE_SILENT const to bypass the notification when purging * [INTEGRATION] Fixed issue with nonce expiration when using ESI API. (#923505 @Dan) * [INTEGRATION] Improved compatibility with Ninja Forms by bypassing non-javascript JS from inline JS minify. * [INTEGRATION] Added a hook for plugins that change the CSS/JS path e.g. Hide My WordPress. = 2.2.2 - Apr 16 2018 = * [NEW FEATURE] WebP Attribute To Replace setting in Media tab. (@vengen) * [IMPROVEMENT] Generate adv_cache file automatically when it is lost. * [IMPROVEMENT] Improved compatibility with ajax login. (@veganostomy) * [UPDATE] Added object cache lib check in case user downgrades LSCWP to non-object-cache versions. * [UPDATE] Avoided infinite loop when users enter invalid hook values in Purge All Hooks settings. * [UPDATE] Updated log format in media&cdn class. * [UPDATE] Added more items to Report. = 2.2.1 - Apr 10 2018 = * [NEW FEATURE] Included Directories setting in CDN tab. (@Dave) * [NEW FEATURE] Purge All Hooks setting in Advanced tab. * [UPDATE] Added background-image WebP replacement support. (@vengen) * [UPDATE] Show recommended values for textarea items in settings. * [UPDATE] Moved CSS/JS optimizer log to Advanced level. * [INTEGRATION] Added WebP support for Avada Fusion Sliders. (@vengen) = 2.2.0.2 - Apr 3 2018 = * [HOTFIX] Object Cache Fixed the PHP warning caused by previous improvement to Object Cache. = 2.2.0.1 - Apr 3 2018 = * [HOTFIX] Object parameter will no longer cause warnings to be logged for Purge and Cache classes. (@kelltech @khrifat) * [UPDATE] Removed duplicated del_file func from Object Cache class. * [BUGFIX] `CLI` no longer shows 400 error upon successful result. = 2.2 - Apr 2 2018 = * [NEW FEATURE] Debug Disable All Features setting in Debug tab. (@monarobase) * [NEW FEATURE] Cache Force Cacheable URIs setting in Excludes tab. * [NEW FEATURE] Purge Purge all LSCache and other caches in one link. * [REFACTOR] Purge Refactored Purge class. * [BUGFIX] Query strings in DoNotCacheURI setting now works. * [BUGFIX] Cache Mobile cache compatibility with WebP vary. (@Shivam #987121) * [UPDATE] Purge Moved purge_all to Purge class from core class. * [API] Set cacheable/Set force cacheable. (@Jacob) = 2.1.2 - Mar 28 2018 = * [NEW FEATURE] Image Optimization Clean Up Unfinished Data feature. * [IAPI] IAPI v2.1.2. * [IMPROVEMENT] CSS/JS Minify Reduced loading time significantly by improving CSS/JS minify loading process. (@kokers) * [IMPROVEMENT] CSS/JS Minify Cache empty JS Minify content. (@kokers) * [IMPROVEMENT] Cache Cache 301 redirect when scheme/host are same. * [BUGFIX] Media Lazy load now can support WebP. (@relle) * [UPDATE] CSS/JS Optimize Serve static files for CSS async & lazy load JS library. * [UPDATE] Report Appended Basic/Advanced View setting to Report. * [UPDATE] CSS/JS Minify Removed zero-width space from CSS/JS content. * [GUI] Added Purge CSS/JS Cache link in Admin. = 2.1.1.1 - Mar 21 2018 = * [BUGFIX] Fixed issue where activation failed to add rules to .htaccess. * [BUGFIX] Fixed issue where 304 header was blank on feed page refresh. = 2.1.1 - Mar 20 2018 = * [NEW FEATURE] Browser Cache Unlocked for non-LiteSpeed users. * [IMPROVEMENT] Image Optimization Fixed issue where images with bad postmeta value continued to show in not-yet-requested queue. = 2.1 - Mar 15 2018 = * [NEW FEATURE] Image Optimization Unlocked for non-LiteSpeed users. * [NEW FEATURE] Object Cache Unlocked for non-LiteSpeed users. * [NEW FEATURE] Crawler Unlocked for non-LiteSpeed users. * [NEW FEATURE] Database Cleaner and Optimizer Unlocked for non-LiteSpeed users. * [NEW FEATURE] Lazy Load Images Unlocked for non-LiteSpeed users. * [NEW FEATURE] CSS/JS/HTML Minify/Combine Optimize Unlocked for non-LiteSpeed users. * [IAPI] IAPI v2.0. * [IAPI] Increased max rows prefetch when client has additional credit. * [IMPROVEMENT] CDN Multiple domains may now be used. * [IMPROVEMENT] Report Added WP environment constants for better debugging. * [REFACTOR] Separated Cloudflare CDN class. * [BUGFIX] Image Optimization Fixed issue where certain MySQL version failed to create img_optm table. (@philippwidmer) * [BUGFIX] Image Optimization Fixed issue where callback validation failed when pulling and sending request simultaneously. * [GUI] Added Slack community banner. * [INTEGRATION] CDN compatibility with WPML multiple domains. (@egemensarica) = 2.0 - Mar 7 2018 = * [NEW FEATURE] Image Optimization Added level up guidance. * [REFACTOR] Image Optimization Refactored Image Optimization class. * [IAPI] Image Optimization New European Image Optimization server (EU2). * [IMPROVEMENT] Image Optimization Manual pull action continues pulling until complete. * [IMPROVEMENT] CDN Multiple CDNs can now be randomized for a single resource. * [IMPROVEMENT] Image Optimization Improved compatibility of long src images. * [IMPROVEMENT] Image Optimization Reduced runtime load. * [IMPROVEMENT] Image Optimization Avoid potential loss/reset of notified images status when pulling. * [IMPROVEMENT] Image Optimization Avoid duplicated optimization for multiple records in Media that have the same image source. * [IMPROVEMENT] Image Optimization Fixed issue where phantom images continued to show in not-yet-requested queue. * [BUGFIX] Core Improved compatibility when upgrading outside of WP Admin. (@jikatal @TylorB) * [BUGFIX] Crawler Improved HTTP/2 compatibility to avoid erroneous blacklisting. * [BUGFIX] Crawler Changing Delay setting will use server variable for min value validation if set. * [UPDATE] Crawler Added HTTP/2 protocol switch in the Crawler settings. * [UPDATE] Removed unnecessary translation strings. * [GUI] Display translated role group name string instead of English values. (@Richard Hordern) * [GUI] Added Join LiteSpeed Slack link. * [GUI] Import / Export Cosmetic changes to Import Settings file field. * [INTEGRATION] Improved compatibility with WPML Media for Image Optimization. (@szmigieldesign) = 1.9.1.1 - February 20 2018 = * [Hotfix] Removed empty crawler when no role simulation is set. = 1.9.1 - February 20 2018 = * [NEW FEATURE] Role Simulation crawler. * [NEW FEATURE] WebP multiple crawler. * [NEW FEATURE] HTTP/2 support for crawler. * [BUGFIX] Fixed a js bug with the auto complete mobile user agents field when cache mobile is turned on. * [BUGFIX] Fixed a constant undefined warning after activation. * [GUI] Sitemap generation settings are no longer hidden when using a custom sitemap. = 1.9 - February 12 2018 = * [NEW FEATURE] Inline CSS/JS Minify. * [IMPROVEMENT] Removed Composer vendor to thin the plugin folder. * [UPDATE] Tweaked H2 to H1 in Admin headings for accessibility. (@steverep) * [GUI] Added Mobile User Agents to basic view. * [GUI] Moved Object Cache & Browser Cache from Cache tab to Advanced tab. * [GUI] Moved LSCache Purge All from Adminbar to dropdown menu. = 1.8.3 - February 2 2018 = * [NEW FEATURE] Crawler server variable limitation support. * [IMPROVEMENT] Added Store Transients option to fix transients missing issue when Cache Wp-Admin setting is OFF. * [IMPROVEMENT] Tweaked ARIA support. (@steverep) * [IMPROVEMENT] Used strpos instead of strncmp for performance. (@Zach E) * [BUGFIX] Transient cache can now be removed when the Cache Wp-Admin setting is ON in Object Cache. * [BUGFIX] Network sites can now save Advanced settings. * [BUGFIX] Media list now shows in network sites. * [BUGFIX] Show Crawler Status button is working again. * [UPDATE] Fixed a couple of potential PHP notices in the Network cache tab and when no vary group is set. * [GUI] Added Learn More link to all setting pages. = 1.8.2 - January 29 2018 = * [NEW FEATURE] Instant Click in the Advanced tab. * [NEW FEATURE] Import/Export settings. * [NEW FEATURE] Opcode Cache support. * [NEW FEATURE] Basic/Advanced setting view. * [IMPROVEMENT] Added ARIA support in widget settings. * [BUGFIX] Multiple WordPress instances with same Object Cache address will no longer see shared data. * [BUGFIX] WebP Replacement may now be set at the Network level. * [BUGFIX] Object Cache file can now be removed at the Network level uninstall. = 1.8.1 - January 22 2018 = * [NEW FEATURE] Object Cache now supports Redis. * [IMPROVEMENT] Memcached Object Cache now supports authorization. * [IMPROVEMENT] A 500 error will no longer be encountered when turning on Object Cache without the proper PHP extension installed. * [BUGFIX] Object Cache settings can now be saved at the Network level. * [BUGFIX] Mu-plugin now supports Network setting. * [BUGFIX] Fixed admin bar showing inaccurate Edit Page link. * [UPDATE] Removed warning information when no Memcached server is available. = 1.8 - January 17 2018 = * [NEW FEATURE] Object Cache. * [REFACTOR] Refactored Log class. * [REFACTOR] Refactored LSCWP basic const initialization. * [BUGFIX] Fixed Cloudflare domain search breaking when saving more than 50 domains under a single account. * [UPDATE] Log filter settings are now their own item in the wp-option table. = 1.7.2 - January 5 2018 = * [NEW FEATURE] Cloudflare API support. * [IMPROVEMENT] IAPI key can now be reset to avoid issues when domain is changed. * [BUGFIX] Fixed JS optimizer breaking certain plugins JS. * [UPDATE] Added cdn settings to environment report. * [GUI] Added more shortcuts to backend adminbar. * [INTEGRATION] WooCommerce visitors are now served from public cache when cart is empty. = 1.7.1.1 - December 29 2017 = * [BUGFIX] Fixed an extra trailing underscore issue when saving multiple lines with DNS Prefetch. * [UPDATE] Cleaned up unused dependency vendor files. = 1.7.1 - December 28 2017 = * [NEW FEATURE] Added DNS Prefetch setting on the Optimize page. * [NEW FEATURE] Added Combined File Max Size setting on the Tuning page. * [IMPROVEMENT] Improved JS/CSS minify to achieve higher page scores. * [IMPROVEMENT] Optimized JS/CSS files will not be served from private cache for OLS or with ESI off. * [UPDATE] Fixed a potential warning for new installations on the Settings page. * [UPDATE] Fixed an issue with guest users occasionally receiving PHP warnings. * [BUGFIX] Fixed a bug with the Improve HTTPS Compatibility setting failing to save. * Thanks to all of our users for your encouragement and support! Happy New Year! * PS: Lookout 2018, we're back! = 1.7 - December 22 2017 = * [NEW FEATURE] Drop Query Strings setting in the Cache tab. * [NEW FEATURE] Multiple CDN Mapping in the CDN tab. * [IMPROVEMENT] Improve HTTP/HTTPS Compatibility setting in the Advanced tab. * [IMPROVEMENT] Keep JS/CSS original position in HTML when excluded in setting. * [IAPI] Reset client level credit after Image Optimization data is destroyed. * [REFACTOR] Refactored build_input/textarea functions in admin_display class. * [REFACTOR] Refactored CDN class. * [GUI] Added a notice to Image Optimization and Crawler to warn when cache is disabled. * [GUI] Improved image optimization indicator styles in Media Library List. = 1.6.7 - December 15 2017 = * [IAPI] Added ability to scan for new image thumbnail sizes and auto-resend image optimization requests. * [IAPI] Added ability to destroy all optimization data. * [IAPI] Updated IAPI to v1.6.7. * [INTEGRATION] Fixed certain 3rd party plugins calling REST without user nonce causing logged in users to be served as guest. = 1.6.6.1 - December 8 2017 = * [IAPI] Limit first-time submission to one image group for test-run purposes. * [BUGFIX] Fixed vary group generation issue associated with custom user role plugins. * [BUGFIX] Fixed WooCommerce issue where logged-in users were erroneously purged when ESI is off. * [BUGFIX] Fixed WooCommerce cache miss issue when ESI is off. = 1.6.6 - December 6 2017 = * [NEW FEATURE] Preserve EXIF in Media setting. * [NEW FEATURE] Clear log button in Debug Log Viewer. * [IAPI] Fixed notified images resetting to previous status when pulling. * [IAPI] Fixed HTTPS compatibility for image optimization initialization. * [IAPI] An error message is now displayed when image optimization request submission is bypassed due to a lack of credit. * [IAPI] IAPI v1.6.6. * [IMPROVEMENT] Support JS data-no-optimize attribute to bypass optimization. * [GUI] Added image group wiki link. * [INTEGRATION] Improved compatibility with Login With Ajax. * [INTEGRATION] Added function_exists check for WooCommerce to avoid 500 errors. = 1.6.5.1 - December 1 2017 = * [HOTFIX] Fixed warning message on Edit .htaccess page. = 1.6.5 - November 30 2017 = * [IAPI] Manually pull image optimization action button. * [IAPI] Automatic credit system for image optimization to bypass unfinished image optimization error. * [IAPI] Notify failed images from LiteSpeed's Image Server. * [IAPI] Reset/Clear failed images feature. * [IAPI] Redesigned report page. * [REFACTOR] Moved pull_img logic from admin_api to media. * [BUGFIX] Fixed a compatibility issue for clients who have allow_url_open setting off. * [BUGFIX] Fixed logged in users sometimes being served from guest cache. * [UPDATE] Environment report is no longer saved to a file. * [UPDATE] Removed crawler reset notification. * [GUI] Added more details on image optimization. * [GUI] Removed info page from admin menu. * [GUI] Moved environment report from network level to single site level. * [GUI] Crawler time added in a user friendly format. * [INTEGRATION] Improved compatibility with FacetWP json call. = 1.6.4 - November 22 2017 = * [NEW FEATURE] Send env reports privately with a new built-in report number referral system. * [IAPI] Increased request timeout to fix a cUrl 28 timeout issue. * [BUGFIX] Fixed a TTL max value validation bug. * [INTEGRATION] Improved Contact Form 7 REST call compatibility for logged in users. * Thanks for all your ratings. That encouraged us to be more diligent. Happy Thanksgiving. = 1.6.3 - November 17 2017 = * [NEW FEATURE] Only async Google Fonts setting. * [NEW FEATURE] Only create WebP images when optimizing setting. * [NEW FEATURE] Batch switch images to original/optimized versions in Image Optimization. * [NEW FEATURE] Browser Cache TTL setting. * [NEW FEATURE] Cache WooCommerce Cart setting. * [IMPROVEMENT] Moved optimized JS/CSS snippet in header html to after meta charset. * [IMPROVEMENT] Added a constant for better JS/CSS optimization compatibility for different dir WordPress installation. * [IAPI] Take over failed callback check instead of bypassing it. * [IAPI] Image optimization requests are now limited to 500 images per request. * [BUGFIX] Fixed a parsing failure bug not using attributes in html elements with dash. * [BUGFIX] Fixed a bug causing non-script code to move to the top of a page when not using combination. * [UPDATE] Added detailed logs for external link detection. * [UPDATE] Added new lines in footer comment to avoid Firefox crash when enabled HTML minify. * [API] `Purge private` / `Purge private all` / `Add private tag` functions. * [GUI] Redesigned image optimization operation links in Media Lib list. * [GUI] Tweaked wp-admin form save button position. * [GUI] Added "learn more" link for image optimization. = 1.6.2.1 - November 6 2017 = * [INTEGRATION] Improved compatibility with old WooCommerce versions to avoid unknown 500 errors. * [BUGFIX] Fixed WebP images sometimes being used in non-supported browsers. * [BUGFIX] Kept query strings for HTTP/2 push to avoid re-fetching pushed sources. * [BUGFIX] Excluded JS/CSS from HTTP/2 push when using CDN. * [GUI] Fixed a typo in Media list. * [GUI] Made more image optimization strings translatable. * [GUI] Updated Tuning description to include API documentation. = 1.6.2 - November 3 2017 = * [NEW FEATURE] Do Not Cache Roles. * [NEW FEATURE] Use WebP Images for supported browsers. * [NEW FEATURE] Disable Optimization Poll ON/OFF Switch in Media tab. * [NEW FEATURE] Revert image optimization per image in Media list. * [NEW FEATURE] Disable/Enable image WebP per image in Media list. * [IAPI] Limit optimized images fetching cron to a single process. * [IAPI] Updated IAPI to v1.6.2. * [IAPI] Fixed repeating image request issue by adding a failure status to local images. * [REFACTOR] Refactored login vary logic. = 1.6.1 - October 29 2017 = * [IAPI] Updated LiteSpeed Image Optimization Server API to v1.6.1. = 1.6 - October 27 2017 = * [NEW FEATURE] Image Optimization. * [NEW FEATURE] Role Excludes for Optimization. * [NEW FEATURE] Combined CSS/JS Priority. * [IMPROVEMENT] Bypass CDN for login/register page. * [UPDATE] Expanded ExpiresByType rules to include new font types. ( Thanks to JMCA2 ) * [UPDATE] Removed duplicated type param in admin action link. * [BUGFIX] Fixed CDN wrongly replacing img base64 and "fake" src in JS. * [BUGFIX] Fixed image lazy load replacing base64 src. * [BUGFIX] Fixed a typo in Optimize class exception. * [GUI] New Tuning tab in admin settings panel. * [REFACTOR] Simplified router by reducing actions and adding types. * [REFACTOR] Renamed `run()` to `finalize()` in buffer process. = 1.5 - October 17 2017 = * [NEW FEATURE] Exclude JQuery (to fix inline JS error when using JS Combine). * [NEW FEATURE] Load JQuery Remotely. * [NEW FEATURE] JS Deferred Excludes. * [NEW FEATURE] Lazy Load Images Excludes. * [NEW FEATURE] Lazy Load Image Placeholder. * [IMPROVEMENT] Improved Lazy Load size attribute for w3c validator. * [UPDATE] Added basic caching info and LSCWP version to HTML comment. * [UPDATE] Added debug log to HTML detection. * [BUGFIX] Fixed potential font CORS issue when using CDN. * [GUI] Added API docs to setting description. * [REFACTOR] Relocated all classes under includes with backwards compatibility. * [REFACTOR] Relocated admin templates. = 1.4 - October 11 2017 = * [NEW FEATURE] Lazy load images/iframes. * [NEW FEATURE] Clean CSS/JS optimizer data functionality in DB Optimizer panel. * [NEW FEATURE] Exclude certain URIs from optimizer. * [IMPROVEMENT] Improved optimizer HTML check compatibility to avoid conflicts with ESI functions. * [IMPROVEMENT] Added support for using ^ when matching the start of a path in matching settings. * [IMPROVEMENT] Added wildcard support in CDN original URL. * [IMPROVEMENT] Moved optimizer table initialization to admin setting panel with failure warning. * [UPDATE] Added a one-time welcome banner. * [UPDATE] Partly relocated class: 'api'. * [API] Added API wrapper for removing wrapped HTML output. * [INTEGRATION] Fixed WooCommerce conflict with optimizer. * [INTEGRATION] Private cache support for WooCommerce v3.2.0+. * [GUI] Added No Optimization menu to frontend. = 1.3.1.1 - October 6 2017 = * [BUGFIX] Improved optimizer table creating process in certain database charset to avoid css/js minify/combination failure. = 1.3.1 - October 5 2017 = * [NEW FEATURE] Remove WP Emoji Option. * [IMPROVEMENT] Separated optimizer data from wp_options to improve compatibility with backup plugins. * [IMPROVEMENT] Enhanced crawler cron hook to prevent de-scheduling in some cases. * [IMPROVEMENT] Enhanced Remove Query Strings to also remove Emoji query strings. * [IMPROVEMENT] Enhanced HTML detection when extra spaces are present at the beginning. * [UPDATE] Added private cache support for OLS. * [BUGFIX] Self-redirects are no longer cached. * [BUGFIX] Fixed css async lib warning when loading in HTTP/2 push. = 1.3 - October 1 2017 = * [NEW FEATURE] Added Browser Cache support. * [NEW FEATURE] Added Remove Query Strings support. * [NEW FEATURE] Added Remove Google Fonts support. * [NEW FEATURE] Added Load CSS Asynchronously support. * [NEW FEATURE] Added Load JS Deferred support. * [NEW FEATURE] Added Critical CSS Rules support. * [NEW FEATURE] Added Private Cached URIs support. * [NEW FEATURE] Added Do Not Cache Query Strings support. * [NEW FEATURE] Added frontend adminbar shortcuts ( Purge this page/Do Not Cache/Private cache ). * [IMPROVEMENT] Do Not Cache URIs now supports full URLs. * [IMPROVEMENT] Improved performance of Do Not Cache settings. * [IMPROVEMENT] Encrypted vary cookie. * [IMPROVEMENT] Enhanced HTML optimizer. * [IMPROVEMENT] Limited combined file size to avoid heavy memory usage. * [IMPROVEMENT] CDN supports custom upload folder for media files. * [API] Added purge single post API. * [API] Added version compare API. * [API] Enhanced ESI API for third party plugins. * [INTEGRATION] Compatibility with NextGEN Gallery v2.2.14. * [INTEGRATION] Compatibility with Caldera Forms v1.5.6.2+. * [BUGFIX] Fixed CDN&Minify compatibility with css url links. * [BUGFIX] Fixed .htaccess being regenerated despite there being no changes. * [BUGFIX] Fixed CDN path bug for subfolder WP instance. * [BUGFIX] Fixed crawler path bug for subfolder WP instance with different site url and home url. * [BUGFIX] Fixed a potential Optimizer generating redundant duplicated JS in HTML bug. * [GUI] Added a more easily accessed submit button in admin settings. * [GUI] Admin settings page cosmetic changes. * [GUI] Reorganized GUI css/img folder structure. * [REFACTOR] Refactored configuration init. * [REFACTOR] Refactored admin setting save. * [REFACTOR] Refactored .htaccess operator and rewrite rule generation. = 1.2.3.1 - September 20 2017 = * [UPDATE] Improved PHP5.3 compatibility. = 1.2.3 - September 20 2017 = * [NEW FEATURE] Added CDN support. * [IMPROVEMENT] Improved compatibility when upgrading by fixing a possible fatal error. * [IMPROVEMENT] Added support for custom wp-content paths. * [BUGFIX] Fixed non-primary network blogs not being able to minify. * [BUGFIX] Fixed HTML Minify preventing Facebook from being able to parse og tags. * [BUGFIX] Preview page is no longer cacheable. * [BUGFIX] Corrected log and crawler timezone to match set WP timezone. * [GUI] Revamp of plugin GUI. = 1.2.2 - September 15 2017 = * [NEW FEATURE] Added CSS/JS minification. * [NEW FEATURE] Added CSS/JS combining. * [NEW FEATURE] Added CSS/JS HTTP/2 server push. * [NEW FEATURE] Added HTML minification. * [NEW FEATURE] Added CSS/JS cache purge button in management. * [UPDATE] Improved debug log formatting. * [UPDATE] Fixed some description typos. = 1.2.1 - September 7 2017 = * [NEW FEATURE] Added Database Optimizer. * [NEW FEATURE] Added Tab switch shortcut. * [IMPROVEMENT] Added cache disabled check for management pages. * [IMPROVEMENT] Renamed .htaccess backup for security. * [BUGFIX] Fixed woocommerce default ESI setting bug. * [REFACTOR] Show ESI page for OLS with notice. * [REFACTOR] Management Purge GUI updated. = 1.2.0.1 - September 1 2017 = * [BUGFIX] Fixed a naming bug for network constant ON2. = 1.2.0 - September 1 2017 = * [NEW FEATURE] Added ESI support. * [NEW FEATURE] Added a private cache TTL setting. * [NEW FEATURE] Debug level can now be set to either 'Basic' or 'Advanced'. * [REFACTOR] Renamed const 'NOTSET' to 'ON2' in class config. = 1.1.6 - August 23 2017 = * [NEW FEATURE] Added option to privately cache logged-in users. * [NEW FEATURE] Added option to privately cache commenters. * [NEW FEATURE] Added option to cache requests made through WordPress REST API. * [BUGFIX] Fixed network 3rd-party full-page cache detection bug. * [GUI] New Cache and Purge menus in Settings. = 1.1.5.1 - August 16 2017 = * [IMPROVEMENT] Improved compatibility of frontend&backend .htaccess path detection when site url is different than installation path. * [UPDATE] Removed unused format string from header tags. * [BUGFIX] 'showheader' Admin Query String now works. * [REFACTOR] Cache tags will no longer output if not needed. = 1.1.5 - August 10 2017 = * [NEW FEATURE] Scheduled Purge URLs feature. * [NEW FEATURE] Added buffer callback to improve compatibility with some plugins that force buffer cleaning. * [NEW FEATURE] Hide purge_all admin bar quick link if cache is disabled. * [NEW FEATURE] Required htaccess rules are now displayed when .htaccess is not writable. * [NEW FEATURE] Debug log features: filter log support; heartbeat control; log file size limit; log viewer. * [IMPROVEMENT] Separate crawler access log. * [IMPROVEMENT] Lazy PURGE requests made after output are now queued and working. * [IMPROVEMENT] Improved readme.txt with keywords relating to our compatible plugins list. * [UPDATE] 'ExpiresDefault' conflict msg is now closeable and only appears in the .htaccess edit screen. * [UPDATE] Improved debug log formatting. * [INTEGRATION] Compatibility with MainWP plugin. * [BUGFIX] Fixed WooCommerce order not purging product stock quantity. * [BUGFIX] Fixed WooCommerce scheduled sale price not updating issue. * [REFACTOR] Combined cache_enable functions into a single function. = 1.1.4 - August 1 2017 = * [IMPROVEMENT] Unexpected rewrite rules will now show an error message. * [IMPROVEMENT] Added Cache Tag Prefix setting info in the Env Report and Info page. * [IMPROVEMENT] LSCWP setting link is now displayed in the plugin list. * [IMPROVEMENT] Improved performance when setting cache control. * [UPDATE] Added backward compatibility for v1.1.2.2 API calls. (used by 3rd-party plugins) * [BUGFIX] Fixed WPCLI purge tag/category never succeeding. = 1.1.3 - July 31 2017 = * [NEW FEATURE] New LiteSpeed_Cache_API class and documentation for 3rd party integration. * [NEW FEATURE] New API function litespeed_purge_single_post($post_id). * [NEW FEATURE] PHP CLI support for crawler. * [IMPROVEMENT] Set 'no cache' for same location 301 redirects. * [IMPROVEMENT] Improved LiteSpeed footer comment compatibility. * [UPDATE] Removed 'cache tag prefix' setting. * [BUGFIX] Fixed a bug involving CLI purge all. * [BUGFIX] Crawler now honors X-LiteSpeed-Cache-Control for the 'no-cache' header. * [BUGFIX] Cache/rewrite rules are now cleared when the plugin is uninstalled. * [BUGFIX] Prevent incorrect removal of the advanced-cache.php on deactivation if it was added by another plugin. * [BUGFIX] Fixed subfolder WP installations being unable to Purge By URL using a full URL path. * [REFACTOR] Reorganized existing code for an upcoming ESI release. = 1.1.2.2 - July 13 2017 = * [BUGFIX] Fixed blank page in Hebrew language post editor by removing unused font-awesome and jquery-ui css libraries. = 1.1.2.1 - July 5 2017 = * [UPDATE] Improved compatibility with WooCommerce v3.1.0. = 1.1.2 - June 20 2017 = * [BUGFIX] Fixed missing form close tag. * [UPDATE] Added a wiki link for enabling the crawler. * [UPDATE] Improved Site IP description. * [UPDATE] Added an introduction to the crawler on the Information page. * [REFACTOR] Added more detailed error messages for Site IP and Custom Sitemap settings. = 1.1.1.1 - June 15 2017 = * [BUGFIX] Hotfix for insufficient validation of site IP value in crawler settings. = 1.1.1 - June 15 2017 = * [NEW] As of LiteSpeed Web Server v.5.1.16, the crawler can now be enabled/disabled at the server level. * [NEW] Added the ability to provide a custom sitemap for crawling. * [NEW] Added ability to use site IP address directly in crawler settings. * [NEW] Crawler performance improved with the use of new custom user agent 'lsrunner'. * [NEW] "Purge By URLs" now supports full URL paths. * [NEW] Added thirdparty WP-PostRatings compatibility. * [BUGFIX] Cache is now cleared when changing post status from published to draft. * [BUGFIX] WHM activation message no longer continues to reappear after being dismissed. * [COSMETIC] Display recommended values for settings. = 1.1.0.1 - June 8 2017 = * [UPDATE] Improved default crawler interval setting. * [UPDATE] Tested up to WP 4.8. * [BUGFIX] Fixed compatibility with plugins that output json data. * [BUGFIX] Fixed tab switching bug. * [BUGFIX] Removed occasional duplicated messages on save. * [COSMETIC] Improved crawler tooltips and descriptions. = 1.1.0 - June 6 2017 = * [NEW] Added a crawler - this includes configuration options and a dedicated admin page. Uses wp-cron * [NEW] Added integration for WPLister * [NEW] Added integration for Avada * [UPDATE] General structure of the plugin revamped * [UPDATE] Improved look of admin pages * [BUGFIX] Fix any/all wp-content path retrieval issues * [BUGFIX] Use realpath to clear symbolic link when determining .htaccess paths * [BUGFIX] Fixed a bug where upgrading multiple plugins did not trigger a purge all * [BUGFIX] Fixed a bug where cli import_options did not actually update the options. * [REFACTOR] Most of the files in the code were split into more, smaller files = 1.0.15 - April 20 2017 = * [NEW] Added Purge Pages and Purge Recent Posts Widget pages options. * [NEW] Added wp-cli command for setting and getting options. * [NEW] Added an import/export options cli command. * [NEW] Added wpForo integration. * [NEW] Added Theme My Login integration. * [UPDATE] Purge adjacent posts when publish a new post. * [UPDATE] Change environment report file to .php and increase security. * [UPDATE] Added new purgeby option to wp-cli. * [UPDATE] Remove nag for multiple sites. * [UPDATE] Only inject LiteSpeed javascripts in LiteSpeed pages. * [REFACTOR] Properly check for zero in ttl settings. * [BUGFIX] Fixed the 404 issue that can be caused by some certain plugins when save the settings. * [BUGFIX] Fixed mu-plugin compatibility. * [BUGFIX] Fixed problem with creating zip backup. * [BUGFIX] Fixed conflict with jetpack. = 1.0.14.1 - January 31 2017 = * [UPDATE] Removed Freemius integration due to feedback. = 1.0.14 - January 30 2017 = * [NEW] Added error page caching. Currently supports 403, 404, 500s. * [NEW] Added a purge errors action. * [NEW] Added wp-cli integration. * [UPDATE] Added support for multiple varies. * [UPDATE] Reorganize the admin interface to be less cluttered. * [UPDATE] Add support for LiteSpeed Web ADC. * [UPDATE] Add Freemius integration. * [REFACTOR] Made some changes so that the rewrite rules are a little more consistent. * [BUGFIX] Check member type before adding purge all button. * [BUGFIX] Fixed a bug where activating/deactivating the plugin quickly caused the WP_CACHE error to show up. * [BUGFIX] Handle more characters in the rewrite parser. * [BUGFIX] Correctly purge posts when they are made public/private. = 1.0.13.1 - November 30 2016 = * [BUGFIX] Fixed a bug where a global was being used without checking existence first, causing unnecessary log entries. = 1.0.13 - November 28 2016 = * [NEW] Add an Empty Entire Cache button. * [NEW] Add stale logic to certain purge actions. * [NEW] Add option to use primary site settings for all subsites in a multisite environment. * [NEW] Add support for Aelia CurrencySwitcher * [UPDATE] Add logic to allow third party vary headers * [UPDATE] Handle password protected pages differently. * [BUGFIX] Fixed bug caused by saving settings. * [BUGFIX] FIxed bug when searching for advanced-cache.php = 1.0.12 - November 14 2016 = * [NEW] Added logic to generate environment reports. * [NEW] Created a notice that will be triggered when the WHM Plugin installs this plugin. This will notify users when the plugin is installed by their server admin. * [NEW] Added the option to cache 404 pages via 404 Page TTL setting. * [NEW] Reworked log system to be based on selection of yes or no instead of log level. * [NEW] Added support for Autoptimize. * [NEW] Added Better WP Minify integration. * [UPDATE] On plugin disable, clear .htaccess. * [UPDATE] Introduced URL tag. Changed Purge by URL to use this new tag. * [BUGFIX] Fixed a bug triggered when .htaccess files were empty. * [BUGFIX] Correctly determine when to clear files in multisite environments (wp-config, advanced-cache, etc.). * [BUGFIX] When disabling the cache, settings changed in the same save will now be saved. * [BUGFIX] Various bugs from setting changes and multisite fixed. * [BUGFIX] Fixed two bugs with the .htaccess path search. * [BUGFIX] Do not alter $_GET in add_quick_purge. This may cause issues for functionality occurring later in the same request. * [BUGFIX] Right to left radio settings were incorrectly displayed. The radio buttons themselves were the opposite direction of the associated text. = 1.0.11 - October 11 2016 = * [NEW] The plugin will now set cachelookup public on. * [NEW] New option - check advanced-cache.php. This enables users to have two caching plugins enabled at the same time as long as the other plugin is not used for caching purposes. For example, using another cache plugin for css/js minification. * [UPDATE] Rules added by the plugin will now be inserted into an LSCACHE START/END PLUGIN comment block. * [UPDATE] For woocommerce pages, if a user visits a non-cached page with a non-empty cart, do not cache the page. * [UPDATE] If woocommerce needs to display any notice, do not cache the page. * [UPDATE] Single site settings are now in both the litespeed cache submenu and the settings submenu. * [BUGFIX] Multisite network options were not updated on upgrade. This is now corrected. = 1.0.10 - September 16 2016 = * Added a check for LSCACHE_NO_CACHE definition. * Added a Purge All button to the admin bar. * Added logic to purge the cache when upgrading a plugin or theme. By default this is enabled on single site installations and disabled on multisite installations. * Added support for WooCommerce Versions < 2.5.0. * Added .htaccess backup rotation. Every 10 backups, an .htaccess archive will be created. If one already exists, it will be overwritten. * Moved some settings to the new Specific Pages tab to reduce clutter in the General tab. * The .htaccess editor is now disabled if DISALLOW_FILE_EDIT is set. * After saving the Cache Tag Prefix setting, all cache will be purged. = 1.0.9.1 - August 26 2016 = * Fixed a bug where an error displayed on the configuration screen despite not being an error. * Change logic to check .htaccess file less often. = 1.0.9 - August 25 2016 = * [NEW] Added functionality to cache and purge feeds. * [NEW] Added cache tag prefix setting to avoid conflicts when using LiteSpeed Cache for WordPress with LiteSpeed Cache for XenForo and LiteMage. * [NEW] Added hooks to allow third party plugins to create config options. * [NEW] Added WooCommerce config options. * The plugin now also checks for wp-config in the parent directory. * Improved WooCommerce support. * Changed .htaccess backup process. Will create a .htaccess_lscachebak_orig file if one does not exist. If it does already exist, creates a backup using the date and timestamp. * Fixed a bug where get_home_path() sometimes returned an invalid path. * Fixed a bug where if the .htaccess was removed from a WordPress subdirectory, it was not handled properly. = 1.0.8.1 - July 28 2016 = * Fixed a bug where check cacheable was sometimes not hit. * Fixed a bug where extra slashes in clear rules were stripped. = 1.0.8 - July 25 2016 = * Added purge all on update check to purge by post id logic. * Added uninstall logic. * Added configuration for caching favicons. * Added configuration for caching the login page. * Added configuration for caching php resources (scripts/stylesheets accessed as .php). * Set login cookie if user is logged in and it isn’t set. * Improved NextGenGallery support to include new actions. * Now displays a notice on the network admin if WP_CACHE is not set. * Fixed a few php syntax issues. * Fixed a bug where purge by pid didn’t work. * Fixed a bug where the Network Admin settings were shown when the plugin was active in a subsite, but not network active. * Fixed a bug where the Advanced Cache check would sometimes not work. = 1.0.7.1 - May 26 2016 = * Fixed a bug where enabling purge all in the auto purge on update settings page did not purge the correct blogs. * Fixed a bug reported by user wpc on our forums where enabling purge all in the auto purge on update settings page caused nothing to be cached. = 1.0.7 - May 24 2016 = * Added login cookie configuration to the Advanced Settings page. * Added support for WPTouch plugin. * Added support for WP-Polls plugin. * Added Like Dislike Counter third party integration. * Added support for Admin IP Query String Actions. * Added confirmation pop up for purge all. * Refactor: LiteSpeed_Cache_Admin is now split into LiteSpeed_Cache_Admin, LiteSpeed_Cache_Admin_Display, and LiteSpeed_Cache_Admin_Rules * Refactor: Rename functions to accurately represent their functionality * Fixed a bug that sometimes caused a “no valid header” error message. = 1.0.6 - May 5 2016 = * Fixed a bug reported by Knut Sparhell that prevented dashboard widgets from being opened or closed. * Fixed a bug reported by Knut Sparhell that caused problems with https support for admin pages. = 1.0.5 - April 26 2016 = * [BETA] Added NextGen Gallery plugin support. * Added third party plugin integration. * Improved cache tag system. * Improved formatting for admin settings pages. * Converted bbPress to use the new third party integration system. * Converted WooCommerce to use the new third party integration system. * If .htaccess is not writable, disable separate mobile view and do not cache cookies/user agents. * Cache is now automatically purged when disabled. * Fixed a bug where .htaccess was not checked properly when adding common rules. * Fixed a bug where multisite setups would be completely purged when one site requested a purge all. = 1.0.4 - April 7 2016 = * Added logic to cache commenters. * Added htaccess backup to the install script. * Added an htaccess editor in the wp-admin dashboard. * Added do not cache user agents. * Added do not cache cookies. * Created new LiteSpeed Cache Settings submenu entries. * Implemented Separate Mobile View. * Modified WP_CACHE not defined message to only show up for users who can manage options. * Moved enabled all/disable all from network management to network settings. * Fixed a bug where WP_CACHE was not defined on activation if it was commented out. = 1.0.3 - March 23 2016 = * Added a Purge Front Page button to the LiteSpeed Cache Management page. * Added a Default Front Page TTL option to the general settings. * Added ability to define web application specific cookie names through rewrite rules to handle logged-in cookie conflicts when using multiple web applications. [Requires LSWS 5.0.15+] * Improved WooCommerce handling. * Fixed a bug where activating lscwp sets the “enable cache” radio button to enabled, but the cache was not enabled by default. * Refactored code to make it cleaner. * Updated readme.txt. = 1.0.2 - March 11 2016 = * Added a "Use Network Admin Setting" option for "Enable LiteSpeed Cache". For single sites, this choice will default to enabled. * Added enable/disable all buttons for network admin. This controls the setting of all managed sites with "Use Network Admin Setting" selected for "Enable LiteSpeed Cache". * Exclude by Category/Tag are now text areas to avoid slow load times on the LiteSpeed Cache Settings page for sites with a large number of categories/tags. * Added a new line to advanced-cache.php to allow identification as a LiteSpeed Cache file. * Activation/Deactivation are now better handled in multi-site environments. * Enable LiteSpeed Cache setting is now a radio button selection instead of a single checkbox. * Can now add '$' to the end of a URL in Exclude URI to perform an exact match. * The _lscache_vary cookie will now be deleted upon logout. * Fixed a bug in multi-site setups that would cause a "function already defined" error. = 1.0.1 - March 8 2016 = * Added Do Not Cache by URI, by Category, and by Tag. URI is a prefix/string equals match. * Added a help tab for plugin compatibilities. * Created logic for other plugins to purge a single post if updated. * Fixed a bug where woocommerce pages that display the cart were cached. * Fixed a bug where admin menus in multi-site setups were not correctly displayed. * Fixed a bug where logged in users were served public cached pages. * Fixed a compatibility bug with bbPress. If there is a new forum/topic/reply, the parent pages will now be purged as well. * Fixed a bug that didn't allow cron job to update scheduled posts. = 1.0.0 - January 20 2016 = * Initial Release. Welcome To – Frugalinnovationhub.com

Blog

  • How I empower minimal voices in discussions

    Key takeaways:

    • Creating a safe and inclusive environment is essential for encouraging minimal voices to participate in discussions.
    • Utilizing strategies like direct invitations to share insights and using tools like “talking sticks” can empower quieter participants.
    • Fostering respect and acknowledging all contributions builds a stronger sense of community and belonging in educational settings.
    • Building ongoing support networks sustains empowerment and provides essential emotional support for individuals beyond initial events.

    Understanding minimal voices in education

    Understanding minimal voices in education

    Understanding minimal voices in education requires us to recognize the nuances of participation. I’ve often seen students who hold back in discussions, not because they lack insight, but due to fear of being misunderstood. This leads me to wonder: how many valuable perspectives are we missing simply because someone feels hesitant to speak up?

    Reflecting on my own experiences, I recall a student who shared a poignant story that changed the dynamic of our discussion. Despite having a wealth of knowledge, their contributions were few and far between. This experience highlighted for me the importance of creating an environment where minimal voices feel safe and valued. It raises the question: what practical steps can we take to ensure everyone feels included?

    In education, minimal voices can come from various backgrounds or face unique challenges. I remember working with a quiet student who, when encouraged, offered extraordinary insights that surprised everyone. This transformation not only enriched our discussion but also reminded me that sometimes, the most profound contributions come from those who speak the least. How can we actively listen and facilitate these voices in our educational spaces?

    Importance of inclusive discussions

    Importance of inclusive discussions

    Inclusive discussions are crucial because they create a tapestry of diverse perspectives, enriching the learning experience for everyone involved. I remember a time when a quiet student in my class made an insightful remark that reframed a topic we had been grappling with for weeks. Without their contribution, I can’t help but think how our understanding would have remained limited. It makes me wonder: what innovative ideas are emerging voices ready to share if given the opportunity?

    Engaging minimal voices is not simply about making space; it’s about fostering an atmosphere where everyone feels their contributions are valid. I once facilitated a small group where I intentionally asked quieter members for their thoughts. The shift in dynamics was palpable as one of them finally articulated an idea that clarified a complex issue for the whole group. This moment reminded me that when we invite participation from all, we often unleash hidden potentials that can benefit the entire group. What if every meeting or discussion could trigger such transformative moments?

    Moreover, inclusive discussions are essential for building a sense of belonging. I’ve observed that when minimal voices are acknowledged, those individuals start to feel a stronger connection to their peers and the learning environment. It’s as if the classroom transforms from a lecture hall into a community. This realization prompts the question: how can we each play a role in nurturing an atmosphere where every voice is heard and valued, ultimately leading to more enriched discussions?

    Strategies for empowering voices

    Strategies for empowering voices

    Creating opportunities for minimal voices to speak up is a powerful strategy I often use. In one workshop, I decided to implement a “talking stick” method, allowing only the person holding the stick to speak. It was amazing to see how this simple tool encouraged quieter participants to share their thoughts without fear of interruption. Each time someone new grabbed the stick, I could see them light up, their confidence growing as they articulated their ideas. Have you ever seen how a small change in format can empower someone to contribute in ways you never expected?

    Another effective approach is to directly invite minimal voices to share their insights, presenting it as a valuable addition to the discussion. During a brainstorming session, I made it a point to ask a shy colleague for their input on our newest project. I could see their hesitation at first, but once they began sharing, they revealed innovative ideas that reshaped our strategy. Isn’t it remarkable how much potential lies untapped when we simply ask someone to speak up?

    Finally, I believe in the power of follow-up questions. When someone shares, responding with open-ended inquiries can deepen their engagement. I often reflect on a group discussion where a quieter participant shared a thought about education technology. By asking them to elaborate, not only did they expand the conversation, but their ideas inspired others to join in. It strikes me that it’s these small interactions that build a rich and inclusive dialogue—what steps might you take to create that same ripple effect in your discussions?

    Creating safe discussion environments

    Creating safe discussion environments

    Creating safe discussion environments is essential for enabling all voices to be heard. I once facilitated a roundtable where I stressed confidentiality, ensuring participants knew that their contributions would remain private. This guarantee led to a newfound openness; people began to express candid concerns they previously kept to themselves. Have you ever noticed how trust can transform a conversation?

    In another instance, I adopted a format where we began with written reflections before opening the floor for discussion. I found this approach gave quieter individuals time to think and gather their thoughts, allowing them to contribute meaningfully. It was incredible to witness how each person’s written insights fueled the dialogue, creating an atmosphere where even the most reserved felt empowered to voice their ideas. Isn’t it fascinating how preparation can lay the groundwork for richer exchanges?

    Moreover, fostering a culture of respect is crucial. I make it a point to acknowledge every contribution, no matter how small, reinforcing that each perspective adds value. In a recent seminar, when a participant hesitated to share due to fear of judgment, I emphasized the importance of diverse viewpoints. Their relief was palpable, and they eventually shared a thought that spurred a productive debate. How can you encourage respect in your discussions to cultivate an environment where everyone feels they belong?

    Facilitating educational events effectively

    Facilitating educational events effectively

    Facilitating educational events effectively requires a blend of structure and flexibility. I remember leading a workshop where I implemented a “talking stick” approach, allowing only the person holding the stick to speak. This simple method not only maintained order but also encouraged participants to listen intently, creating a more respectful atmosphere. How often do we forget the power of attentive listening in our discussions?

    In another example, I learned the importance of catering to diverse learning styles. During a training session, I included visual aids and group activities alongside traditional lectures. By engaging various senses, I noticed participants who typically shied away from speaking began to share their thoughts. It was a revelation to see how tailoring the event to individual needs could unlock the potential for collaboration. Have you considered how different formats could enhance participation in your events?

    Moreover, timely feedback is essential in guiding effective discussions. I routinely check in with participants throughout the event, asking for their thoughts on the flow of conversation and whether they feel included. One time, a participant suggested we revisit certain topics that needed more exploration. This not only validated their input but also improved the overall experience for everyone involved. How might soliciting feedback transform the way you facilitate discussions?

    Personal experiences in empowering others

    Personal experiences in empowering others

    One experience that stands out for me is when I mentored a student who often felt overshadowed by more vocal peers. I made it a point to create a safe space for her during our discussions. By explicitly inviting her to share her thoughts first, I witnessed a transformation in her confidence. What a joy it was to see her articulate her ideas with such passion—what if everyone had someone to empower them like that?

    Another time, I co-facilitated an event where attendees were from vastly different backgrounds. I found that incorporating breakout sessions where small groups could discuss their perspectives made a significant difference. Participants who were usually more reserved began to engage actively, sharing their unique insights. Isn’t it amazing how creating smaller, more intimate settings can spark dialogue that enriches the entire experience?

    Reflecting on these moments, I realize that empowerment often comes from recognizing the hidden potential in others. During one discussion, a quiet participant expressed concern about feeling excluded, and I encouraged her to voice her feelings to the group. The positive shift in energy that followed was palpable. Could it be that simply validating a person’s experience can open the floodgates for authentic conversation?

    Building ongoing support networks

    Building ongoing support networks

    Building ongoing support networks is crucial in sustaining empowerment. I remember establishing a group where former participants could reconnect regularly. These meet-ups became a lifeline for those who had felt isolated before. Just think about it: how empowering is it to have a community that continues to cheer you on long after the initial event ends?

    Creating these networks isn’t just about numbers; it’s about nurturing relationships. Once, during a follow-up session, a member expressed how the ongoing connections helped her tackle challenges she faced in her career. Listening to her share that the network provided not only advice but also emotional support struck a chord with me. Isn’t that the essence of truly effective networking—having people who genuinely care about your growth?

    As I facilitated more events, I noticed that the quality of interactions improved over time. I once encouraged members to reach out to someone they hadn’t spoken to in a while and check in. The resulting conversations were heartwarming, filled with reflections and ideas that continued to evolve. How incredible is it that simple acts of connection can lead to new opportunities and deeper understanding among individuals?

  • How I embrace vulnerability in dialogues

    Key takeaways:

    • Vulnerability in dialogues fosters authenticity and deepens connections by encouraging individuals to share personal experiences.
    • Creating safe spaces and practicing active listening is essential for facilitating open and trusting conversations.
    • Overcoming fears in discussions can lead to valuable insights and meaningful exchanges, highlighting that everyone’s voice matters.
    • Embracing vulnerability can transform educational environments, promoting a culture of trust and allowing for genuine learning experiences.

    Understanding vulnerability in dialogues

    Understanding vulnerability in dialogues

    Vulnerability in dialogues often starts with a willingness to share one’s personal experiences and thoughts. I remember a moment during a group discussion when I shared a failure I faced at work. The room fell silent for a brief moment, but instead of judgment, I felt connection. Isn’t it interesting how our fears can bridge gaps between us?

    Expressing vulnerability encourages authenticity, fostering deeper connections. When I consciously choose to be open about my challenges, I notice that others start to mirror this behavior. Have you ever considered how vulnerability can create a safe space for honest conversations? It invites others to reflect on their own struggles, making dialogues more enriching and relatable.

    Understanding vulnerability isn’t just about exposing ourselves; it’s also about showing empathy. When I hear someone share a tough moment, I often feel compelled to support and validate their feelings. This emotional exchange transforms a simple conversation into a powerful exchange of trust and understanding, doesn’t it?

    Importance of vulnerability in education

    Importance of vulnerability in education

    The significance of vulnerability in education cannot be overstated. I recall a workshop where a facilitator shared her struggle with self-doubt while preparing her lessons. This revelation not only humanized her but also inspired the participants to reflect on their insecurities. Have you ever noticed that when someone steps forward with their fears, it encourages a wave of honesty from others?

    In educational settings, vulnerability fosters a culture of trust. For example, when I taught my students about critical feedback, I shared my own past experiences with receiving critique. This openness created an atmosphere where my students felt safe to express their thoughts without fear of judgment. Isn’t it remarkable how this openness can transform a classroom into a space for mutual growth?

    Moreover, embracing vulnerability in education leads to deeper learning experiences. I’ve observed that when students are encouraged to share their mistakes and lessons learned, they engage more genuinely with the material. It allows them to see education as a journey rather than a series of checkboxes. How can we expect our students to take risks if we don’t model that behavior ourselves?

    Strategies to embrace vulnerability

    Strategies to embrace vulnerability

    One effective strategy to embrace vulnerability is to share personal anecdotes in discussions. For instance, I once revealed my fears about public speaking during a workshop. The moment I opened up, a participant shared her own struggles, leading to a spirited exchange that brought us closer. Have you ever felt that connection when someone is brave enough to reveal their true self?

    Another approach is to create a space where everyone feels encouraged to express their emotions. I remember facilitating a group dialogue where we used ‘feelings check-ins’ to start our discussions. This simple practice not only broke the ice but also prompted everyone to share their genuine thoughts and feelings, transforming the conversation into an opportunity for growth. Isn’t it fascinating how a small shift can lead to deeper conversations?

    Lastly, actively listen during dialogues to validate the vulnerabilities expressed by others. I made it a point to acknowledge and reflect on the experiences shared by my peers during group discussions. I noticed that this not only made them feel heard but also inspired others to take a leap of faith and share their own stories. What have you found to be the most effective way to cultivate a listening culture?

    Practical tips for open dialogues

    Practical tips for open dialogues

    One practical tip for fostering open dialogues is to set clear ground rules. I remember a workshop where we agreed that everyone would respect each other’s time to speak. This framework not only encouraged participants to contribute but also created a sense of safety. Have you noticed how establishing norms can shift the atmosphere in a group?

    Another effective strategy is to use open-ended questions that invite deeper reflection. I once posed the question, “What vulnerability has taught you about yourself?” During that session, participants shared revealing insights about their experiences. The conversations that followed were rich and genuine, allowing everyone to connect on a more meaningful level. Isn’t it amazing how the right question can open doors to greater intimacy in communication?

    Finally, embracing pauses during conversations can also enhance openness. There was a moment in a dialogue where I intentionally paused after someone shared a sensitive story. This silence gave everyone space to process their thoughts and feelings, which led to more candid responses. Don’t you think that sometimes, silence speaks louder than words?

    Creating safe spaces for conversations

    Creating safe spaces for conversations

    Creating safe spaces for conversations involves more than just a physical environment; it’s about fostering emotional security. I once attended a small group discussion where each participant shared something personal while sitting in a circle, illuminated by soft lighting. That intimate setting, paired with the assurance that our stories wouldn’t be judged, allowed everyone to let their guard down. Have you ever felt how a cozy atmosphere can invite genuine dialogue?

    Another critical element is active listening. In a recent workshop, I wrestled with my tendency to jump in with my thoughts instead of fully absorbing what others were saying. When I shifted to truly listening, maintaining eye contact and nodding in acknowledgment, I noticed that participants felt more valued. Isn’t it fascinating how a little awareness can significantly enhance the trust in a conversation?

    Finally, acknowledging emotions can be a powerful way to promote safety in dialogues. I remember a session where a participant became emotional while sharing her experience. Instead of rushing to comfort her, I paused to validate her feelings by saying, “It’s okay to feel that way; your emotions are real.” By not shying away from vulnerability, we reinforced that it’s not only acceptable but encouraged to express our true selves. How often do we allow space for such authenticity in our conversations?

    Overcoming fears in discussions

    Overcoming fears in discussions

    Embracing vulnerability in discussions often starts with confronting our fears. I remember a time when I hesitated to voice my opinion during a critical team meeting. The fear of being wrong or judged paralyzed me, yet I decided to share my thoughts anyway. To my surprise, my perspective sparked a constructive debate, and I realized that the fear I felt was far greater than the actual experience of expressing myself. Have you ever felt that moment of breakthrough when you pushed past your fear?

    It’s quite easy to internalize doubts and worry about how our words will be received. I had a friend who would often back away from group conversations because of her fear of saying something foolish. One day, she decided to challenge herself and speak up at an event. Not only did she gain confidence, but she also ignited a lively discussion that no one saw coming. It made me wonder: how many valuable insights go unshared because we’re too afraid to take that leap?

    Ultimately, overcoming these fears is about realizing that our voices matter. I recall a pivotal moment during a workshop when participants were encouraged to share their views without filters. The collective vulnerability that emerged transformed our interactions into something meaningful. In that space, I learned that each of us harbors valuable experiences that can resonate with others. So, what holds you back from engaging fully in your conversations?

    Personal experiences with vulnerability

    Personal experiences with vulnerability

    Sharing my struggles with vulnerability is quite illuminating. I recall a time in a peer group discussion where I stood feeling completely exposed as I revealed my shortcomings. The anxiety was palpable, but when I finally spoke, something remarkable happened. My honesty led others to open up as well, fostering a sense of camaraderie that transformed our conversation. Have you ever noticed how vulnerability can create unexpected connections?

    In another instance, when volunteering at a community event, I shared my experience of overcoming a significant personal challenge—something that felt incredibly daunting. To my surprise, this openness encouraged others to share their own stories of resilience. It felt like a weight lifted off our shoulders, and I realized that vulnerability isn’t just about revealing our fears; it’s also about inviting others to share in that space. Isn’t it fascinating how a single moment of honesty can shift the dynamics of an entire group?

    I often reflect on moments when I chose to be vulnerable with my students. One memorable lesson involved discussing failure—not just the concept but my personal experiences with it. This raw authenticity transformed the atmosphere. Suddenly, my students felt safe to express their own fears of failure. In that moment, we were united by our shared human experience, illustrating how vulnerability can lead to deeper understanding and trust. Have you experienced something similar in your own interactions?

  • How I empower emerging voices

    Key takeaways:

    • Educational events foster knowledge sharing and community building, facilitating dialogue that extends beyond individual sessions.
    • Empowering emerging voices fosters a sense of belonging and can initiate meaningful change in educational practices.
    • Creating inclusive environments requires thoughtful planning, accessibility, and a culture of respect to enhance participant engagement.
    • Measuring the impact of empowerment efforts through feedback and follow-up reveals the transformative effects on individuals and communities.

    Understanding educational events

    Understanding educational events

    Educational events serve as powerful platforms for knowledge sharing and community building. I remember attending a small workshop once that forever changed my perspective. It wasn’t just about the information shared; it was about the connections made and the collective enthusiasm in the room.

    These events can take many forms, from seminars to conferences, each designed to facilitate learning in different ways. I often find myself reflecting on how a single presentation can spark a dialogue that continues long after the event has ended. Have you ever left a session with your mind buzzing, eager to share what you learned with others? That’s the magic of educational events.

    Moreover, the impact of these gatherings extends beyond the individual. Witnessing diverse voices come together and share their stories can be incredibly moving. I once sat in a panel discussion where emerging educators shared their challenges and triumphs, and it struck me how vital it is to create spaces for such voices. Isn’t it fascinating how these events can bring forth narratives that inspire change and innovation in education?

    Importance of empowering voices

    Importance of empowering voices

    Empowering emerging voices is crucial because it fosters a sense of belonging and validation. I remember a time when I facilitated a session for new educators who were often overlooked in discussions. When they shared their insights, you could feel the room shift—their experiences resonated deeply and reminded all of us of the importance of fresh perspectives in the educational landscape.

    It’s not just about providing a platform; it’s about amplifying narratives that might otherwise go unheard. I once attended a workshop where a young educator detailed her journey navigating systemic barriers. Her courage not only inspired others but also sparked meaningful conversations among seasoned professionals, showing that every voice has the potential to initiate change. Don’t you think that sharing personal stories can break down walls and create a more inclusive environment?

    The importance of empowering voices cannot be overstated; it allows for growth and innovation. When diverse viewpoints are welcomed, you open the door to new ideas and solutions. I remember the exhilarating feeling of brainstorming with a group where everyone’s input felt valued. That collective creativity reminded me that, in education, the more voices we elevate, the richer our understanding becomes. How can we ignore such potent potential for transformation?

    Types of educational events

    Types of educational events

    Educational events come in many forms, each serving unique purposes. From workshops that dive deep into specific teaching methods to conferences that showcase the latest research in education, the variety is vast. I recall attending a regional conference where educators from different backgrounds gathered to share their innovative strategies. The energy in the air was palpable, with each session a new opportunity to learn and connect.

    Panel discussions are another engaging format that stands out to me. I once participated in a panel centered on technology in the classroom, and what struck me was the dynamic exchange of ideas among diverse voices. Each panelist brought their unique perspective, and together, we painted a fuller picture of how tech can enhance learning. It was a reminder that dialogue can be just as powerful as formal presentations. Have you ever thought about how much you can learn just by listening to others share their experiences?

    Lastly, networking events offer a more informal space for educators to connect. I’ve seen incredible friendships blossom during these gatherings, which often lead to collaborations that enrich the educational experience. I think back to a casual meet-up I attended where an emerging educator forged valuable partnerships that shaped her career. Isn’t it fascinating how sometimes the most meaningful outcomes arise from conversations that flow in unexpected directions?

    Strategies for engaging emerging voices

    Strategies for engaging emerging voices

    To effectively engage emerging voices, creating safe spaces for open dialogue is crucial. I recall an intimate workshop I facilitated where participants were encouraged to voice their opinions without judgment. I noticed that once they felt secure, their ideas flowed freely, leading to some innovative solutions to common challenges. Have you experienced the magic that happens when people feel truly heard?

    Incorporating mentorship programs can also significantly boost engagement. I once paired an emerging educator with an experienced teacher, and the transformation was remarkable. The mentor provided guidance while also valuing the fresh perspective of the newcomer. This dynamic strengthened their connection and enriched their teaching practices. It made me wonder, how often do we truly leverage the wisdom in our ranks?

    Furthermore, actively soliciting feedback from emerging voices fosters a sense of community and ownership. I remember a feedback session I led where participants were eager to share their insights on organizing events. Their contributions shaped future initiatives, making them feel like an integral part of the process. Isn’t it empowering when individuals see their input making a tangible impact?

    Creating inclusive event environments

    Creating inclusive event environments

    Creating an inclusive event environment begins with thoughtful planning that considers diverse perspectives. I vividly recall a conference where the seating arrangements were designed to foster collaboration, rather than isolation. Attendees were mixed by experience level and background, which led to unexpected conversations and deeper connections. Have you ever noticed how much more vibrant discussions can be when diverse voices come together and share their experiences?

    Accessibility must also be a priority when creating inclusive spaces. At a recent workshop, we ensured that all materials were available in multiple formats and that venue accessibility was prioritized. I saw firsthand how this enabled individuals with different needs to participate fully, fostering a sense of belonging. It made me reflect on how often inclusivity can be overlooked in the planning stages—are we doing enough to prepare for everyone’s participation?

    Lastly, it’s crucial to promote an atmosphere of respect and openness by establishing clear guidelines for interaction. During one event, we introduced a “no interrupting” policy that encouraged active listening and respectful discourse. The shift in energy was palpable; people felt empowered to share their unique viewpoints without fear of being overshadowed. Isn’t it fascinating how simple adjustments can create such rich and engaging conversations?

    Personal experiences in empowerment

    Personal experiences in empowerment

    Empowering emerging voices is truly a transformative experience, both for the speaker and the audience. I remember one particular event where we featured a panel of young activists who shared their stories of struggle and success. As they spoke, their passion was infectious; I could see how their authenticity sparked new ideas among the attendees. Have you ever witnessed a moment when someone’s story completely shifted your perspective? It’s these moments of vulnerability that create powerful connections.

    I also had the opportunity to mentor a group of aspiring educators during a training session. One participant, who was initially shy, opened up about her innovative teaching methods after receiving encouragement from her peers. The joy on her face when she realized her ideas were valuable was unforgettable. It made me wonder: how many brilliant ideas remain hidden because we don’t provide the right platform for sharing?

    At another event, we held breakout sessions focused on storytelling. Participants were given the space to express their experiences in a supportive environment, and the revelations that emerged were incredible. I still think about one young woman who shared her journey of overcoming personal challenges. Her courage left a lasting impact, reminding me of the importance of creating spaces where everyone feels they have a voice. Isn’t it remarkable how sharing our stories can empower not just individuals but entire communities?

    Measuring impact of empowerment efforts

    Measuring impact of empowerment efforts

    Measuring the impact of our empowerment efforts can be challenging yet incredibly insightful. I recall a workshop where we collected feedback through anonymous surveys. The responses were eye-opening; participants shared not just what they learned but how they felt more confident in voicing their ideas. It made me realize that qualitative data can often tell a deeper story than numbers alone.

    Another key approach I’ve found valuable is tracking participant engagement over time. After introducing a mentorship program, I reached out six months later to see how my mentees were progressing. Hearing them describe their journeys was rewarding. One mentee even started a community initiative, demonstrating that the seeds of empowerment can lead to meaningful change long after the event ends.

    Lastly, I think about the power of follow-up conversations. After a recent conference, I set up informal check-ins with attendees, asking how our discussions influenced their actions. The stories they shared reinforced the notion that the impact of empowerment isn’t just instant; it ripples outwards, affecting their communities and inspiring others. Isn’t it fascinating to think about the collective influence these emerging voices can have?

  • How I embrace the impact of breaking barriers during talks

    Key takeaways:

    • Breaking barriers involves recognizing and addressing internal and external limitations, fostering connection through shared vulnerabilities.
    • Effective communication requires active listening, clarity in messaging, and alignment of non-verbal cues to enhance audience engagement.
    • Creating inclusive educational events necessitates tailored approaches that acknowledge diverse learning styles and foster emotional safety.
    • Embracing feedback promotes continuous improvement and enriches the learning experience by encouraging openness and adaptability in response to criticism.

    Understanding breaking barriers

    Understanding breaking barriers

    Breaking barriers is about transcending limitations, both internal and external. I remember a time during a conference where I felt intimidated to speak up, surrounded by experts I admired. It struck me then that everyone, irrespective of their credentials, faces their own doubts—how often do we let fear stop us from sharing valuable insights?

    There’s a unique power in vulnerability when discussing barriers. I once witnessed a colleague share her struggles with public speaking at an educational event. Her honesty not only resonated with the audience but also encouraged others to open up. Isn’t it fascinating how our shared experiences can create a space for collective growth?

    Understanding breaking barriers involves recognizing that challenges are simply part of the journey. I’ve learned that each time I confront a barrier—be it fear, misunderstanding, or lack of representation—there’s an opportunity to foster connection. How can these moments reshape our approach to communication and knowledge sharing?

    Strategies for effective communication

    Strategies for effective communication

    Active listening is a cornerstone of effective communication. I recall a workshop where a facilitator emphasized the importance of truly hearing others before responding. It made me realize that when we listen deeply, we not only foster respect but also encourage a richer dialogue. Have you ever noticed how a simple nod can invite someone to continue sharing their thoughts?

    Clarity and simplicity in our messages can break through even the most complex barriers. I remember presenting a project at an educational seminar, and I chose to use relatable analogies instead of jargon. To my surprise, my audience connected more, and questions flowed freely. Isn’t it amazing how breaking down complicated concepts can lead to meaningful engagement?

    Non-verbal communication often speaks louder than words. There was an instance when I noticed a participant in a panel discussion looking disengaged. By adjusting my body language and making direct eye contact, I shifted the energy in the room. It’s interesting how small gestures can bridge the gap between speakers and listeners, making everyone feel included. What strategies do you employ to ensure your non-verbal cues align with your message?

    Creating inclusive educational events

    Creating inclusive educational events

    Creating inclusive educational events requires intentional planning and awareness of diverse needs. I once attended a seminar where the organizer tailored resources for participants with various learning styles. The difference was palpable; everyone felt acknowledged, and it enriched our collective experience. How often do we consider the unique perspectives our audience brings to the table?

    In my experience, where I’ve seen true inclusivity shine is in interactive formats. A hands-on workshop I led incorporated breakout sessions that allowed participants to engage in ways that suited them best. I noticed that the more varied the activities, the more lively the discussions became. Isn’t it remarkable how empowering individuals to share their ideas can lead to shared learning?

    Moreover, fostering an environment of openness can break down barriers to participation. I remember a particularly impactful event where facilitators encouraged questions from everyone, without judgment. The relief I saw on a participant’s face as they voiced their thoughts reminded me how crucial emotional safety is in educational settings. Have you ever considered how a supportive atmosphere can transform a simple event into a memorable experience?

    Personal experiences in overcoming barriers

    Personal experiences in overcoming barriers

    I recall a panel discussion where I felt the weight of being the only representative from my background. Initially, I hesitated to share my perspective, worried it wouldn’t resonate. However, a nudge from a fellow panelist, who encouraged me to lean into my unique story, changed everything. I found that my experience not only echoed with some in the audience but sparked a vibrant conversation that explored unfamiliar viewpoints.

    During a workshop focused on cultural competency, I faced an unexpected barrier when participants were hesitant to share their experiences. I took a moment to recount my own struggles with cultural misunderstandings. In that instant, the room shifted; participants began to open up, revealing their stories and sharing the lessons learned. It struck me how vulnerability can create a bridge over disparities and bring people closer together. Have you ever seen how one person’s honesty can shift the entire dynamic of a discussion?

    One of my most profound moments involved facilitating a discussion where individuals with contrasting beliefs clashed. Initially, it felt like an insurmountable wall between us. However, by fostering respectful dialogue and guiding the conversation with care, I witnessed the barriers dissolving. Each participant left with a better understanding of the others’ viewpoints, which reminded me that breaking barriers is often about listening as much as it is about speaking. How often do we underestimate the power of dialogue in overcoming differences?

    Techniques for engaging diverse audiences

    Techniques for engaging diverse audiences

    Engaging diverse audiences requires intentional strategies that resonate with each individual’s background and experiences. For instance, I once attended a workshop where we utilized small group discussions focused on personal storytelling. This technique allowed participants to share and connect with one another on a deeper level, breaking down initial barriers. Have you noticed how hearing someone’s personal journey can shift perspectives?

    Another effective method I’ve found is incorporating interactive elements, such as polls or instant feedback. During a recent seminar, I implemented real-time polling to gauge participants’ sentiment on various topics. The results sparked immediate discussion, allowing everyone to voice their opinions. This not only made the session more dynamic but created a sense of community among attendees. Isn’t it fascinating to see how technology can enhance engagement?

    Lastly, embracing cultural nuances in communication can significantly impact audience connection. I remember leading a session that included participants from different cultural backgrounds. By acknowledging and adapting to these differences—like using culturally relevant examples or humor—I noticed individuals becoming more comfortable and willing to participate. How important do you think it is to be culturally aware when engaging a diverse audience?

    Embracing feedback for continuous improvement

    Embracing feedback for continuous improvement

    Embracing feedback is a cornerstone of continuous improvement, especially in educational settings. I recall a particularly transformative workshop where participant feedback was gathered through anonymous surveys. The raw honesty displaced any initial apprehension I had about criticism. Instead, I found myself inspired to refine my approach, viewing feedback not as a personal judgment but as an invaluable tool for growth. Have you ever experienced a moment where criticism reshaped your perspective?

    Listening to feedback can open doors to insights one might overlook. During a recent panel discussion, a participant pointed out that I often dive deep into complex concepts without pausing for clarification. At first, I was taken aback, but reflecting on it later, I recognized that the suggestion was spot on. Adjusting my pacing not only enhanced comprehension but also fostered an inviting atmosphere where questions were welcomed. Isn’t it enlightening how a simple suggestion can lead to such meaningful change?

    Moreover, I’ve learned that the way I respond to feedback can set the tone for future interactions. After receiving constructive criticism, I made it a point to express genuine appreciation towards those who provided insights. This created a culture of openness in my workshops, where attendees felt encouraged to share their thoughts. Don’t you think that fostering an environment where feedback is celebrated could significantly enrich the learning experience for everyone involved?

  • How I embrace the richness of diverse ideas

    Key takeaways:

    • Educational events serve as collaborative environments where diverse perspectives foster innovation and challenge assumptions.
    • Embracing diverse ideas enhances problem-solving capabilities and leads to more inclusive discussions, enriching the learning experience for all participants.
    • Personal experiences with diversity highlight the transformative power of engaging with different backgrounds and ideas, fostering individual and collective growth.
    • Integrating various educational philosophies can create a more meaningful learning environment, emphasizing the importance of cultural context in teaching practices.

    Understanding educational events

    Understanding educational events

    Educational events are powerful opportunities for growth, connection, and the exchange of ideas. I still remember attending a workshop years ago, where a diverse group of educators shared their unique perspectives. It struck me how each person contributed a piece of the puzzle, enhancing our collective understanding. Have you ever found that one insight that completely reshapes your perspective? Those moments are what make educational events unforgettable.

    When I think of educational events, I see them as vibrant melting pots of thoughts and experiences. Each presenter brings their narrative, creating an environment where new ideas can flourish. I once sat in on a panel discussion where experts from different fields debated the future of education. It was fascinating to see how varying backgrounds influenced their approaches. How do we benefit from these contrasting viewpoints? They encourage us to challenge our assumptions and broaden our thinking.

    Moreover, the interactive nature of these events fosters a sense of community. Engaging in discussions not only deepens my understanding but also builds lasting connections with others. I vividly recall a break-out session where we brainstormed solutions for common challenges. The camaraderie and collaboration felt electric, as if we were all part of something bigger. Isn’t it incredible how a shared space can lead to innovative breakthroughs? Educational events truly empower us to embrace our diversity and learn from one another.

    Importance of diverse ideas

    Importance of diverse ideas

    Diverse ideas are the lifeblood of creativity and innovation. I recall attending an educational seminar where a participant shared their experiences in a completely different educational system, which challenged my preconceived notions. It made me wonder: how often do we limit ourselves by only seeking ideas that echo our own beliefs? Embracing variety can radically shift our understanding and open doors to solutions we never thought possible.

    In conversations peppered with differing viewpoints, I often feel a spark of excitement. During a recent forum, an unexpected suggestion from a newcomer transformed our discussion on teaching methodologies. It was a reminder of how a fresh perspective can illuminate blind spots and lead to breakthroughs. When we lean into diverse ideas, we invite a more holistic view of challenges, enhancing both our practices and our outcomes.

    Moreover, the ability to engage with diverse thoughts builds resilience and adaptability. I was once part of a project group where disagreements arose frequently; instead of stifling progress, these moments propelled us to find innovative solutions. How can we genuinely grow if we don’t challenge our own ideas? The richness found in diverse perspectives not only strengthens our learning but also cultivates an environment where everyone feels valued and heard.

    Benefits of embracing diversity

    Benefits of embracing diversity

    One of the most profound benefits of embracing diversity is the increased potential for innovation. I remember a workshop where participants from various cultural backgrounds collaborated on a curriculum design. The range of perspectives not only enriched our project but also inspired solutions I had never considered. Have you ever been part of a group where the blend of ideas sparked something extraordinary? It’s these moments of creative synergy that remind us of the immense value diverse inputs bring.

    Diversity also enhances problem-solving capabilities. I distinctly recall struggling with a particular educational challenge with my team. It was during a brainstorming session that one member shared a strategy rooted in their experience abroad, shifting our approach entirely. This experience taught me that exposure to varied thought processes unravels new angles to tackle issues, making our collective understanding richer. Why limit ourselves to one viewpoint when the path to a solution may lie in the fusion of many?

    Lastly, embracing diverse ideas creates a more inclusive space for all participants. In my own experience, I’ve noticed that when everyone feels their voice matters, the discussion flourishes. I vividly recall attending a panel discussion where differing opinions were celebrated rather than suppressed. This not only energized the conversation but also fostered a sense of community. Isn’t it empowering when everyone contributes to a shared goal? Engaging with a broad spectrum of ideas cultivates an environment where individuals thrive, and learning becomes a collective journey.

    How to find diverse events

    How to find diverse events

    To find diverse events, start by exploring local community centers and cultural organizations. I remember stumbling upon a neighborhood festival that celebrated fusion cuisine, arts, and traditions from around the world. The joy of tasting dishes I had never tried before while engaging with different cultures was a reminder that attending local events can open doors to experiences I hadn’t considered.

    Another effective strategy is to tap into online platforms dedicated to educational events. Websites like Meetup or Eventbrite often curate listings that focus on diversity. I once signed up for a virtual seminar that featured speakers from various countries discussing global education reforms. The insights shared were not only eye-opening but also encouraged me to think critically about my own educational practices. Have you checked these platforms in a while? You might just discover an event that ignites your passion for learning.

    Lastly, don’t underestimate the power of your personal network. Share your desire to attend diverse events with friends and colleagues; you’d be surprised at the recommendations you receive. One of my closest friends introduced me to a documentary screening that highlighted the experiences of immigrant educators. The discussion afterward was rich and reflective, allowing us to connect on deeper levels. Have you thought about who in your circle might help you discover something new? You might learn more than just an event; you might gain a fresh perspective on a familiar topic.

    Tips for engaging in discussions

    Tips for engaging in discussions

    Engaging in discussions effectively requires a genuine curiosity about others’ perspectives. I’ve found that asking open-ended questions not only fuels conversation but also invites others to share their unique experiences. For instance, during a panel discussion on innovation, I asked a speaker how their background influenced their approach to problem-solving. The room buzzed with energy as stories poured out, transforming the atmosphere into a rich tapestry of diverse ideas.

    It’s also crucial to actively listen. I recall a moment during a workshop where a participant shared a story about overcoming barriers in education. Instead of just waiting to reply, I really focused on their words, which allowed me to connect with their emotions and insights. This experience reinforced my belief that listening deeply can lead to more meaningful dialogues. Have you ever felt that moment of connection when someone truly listens? It’s transformative.

    Lastly, cultivating an inclusive environment can greatly enhance discussions. When I organized a community roundtable, I made sure everyone felt welcome to speak by sharing my own vulnerable experiences first. This not only set a tone of openness but also encouraged others to be more forthcoming with their thoughts. Have you considered the impact of creating a safe space for sharing? It can lead to unexpected, enriching conversations that illuminate various viewpoints.

    Personal experiences with diversity

    Personal experiences with diversity

    I vividly remember my first encounter with cultural diversity during an international conference. As I mingled with participants from various countries, I was captivated by how their distinct backgrounds shaped their perspectives. One participant, sharing her journey as a female scientist in a male-dominated field, inspired me profoundly. It made me ponder: how do our unique backgrounds influence our paths? I realized that embracing this diversity could spark innovation in fields we often perceive as stagnant.

    Another experience that stands out for me occurred when I volunteered in a community program that worked with immigrant families. I was struck by the resilience of the mothers I met, each with incredible stories of sacrifice and determination. Their narratives were far from just tales of struggle; they were also filled with triumphs and dreams. I often questioned myself: what can I learn from their experiences? This prompted me to actively engage with them, allowing their rich tapestry of experiences to challenge my preconceived notions and broaden my understanding of strength.

    Finally, during a university seminar, I had the chance to interact with students from various disciplines. We were assigned to work on a project that encouraged us to combine our unique skill sets. Initially, I felt hesitant, unsure of how my ideas fit within such a diverse group. But as we collaborated, our differences became our greatest assets. I realized that it was in this melting pot of thoughts that creativity flourished. Have you ever experienced that moment of clarity when different ideas converge? It’s a beautiful reminder of the power of diverse perspectives.

    Applying diverse ideas in learning

    Applying diverse ideas in learning

    Embracing diverse ideas in learning has profoundly transformed my approach to education. During a workshop on innovative teaching strategies, I found myself in a group where each member brought their own unique educational philosophies. As we shared our methods, I realized how integrating various approaches not only enriched our discussions but also created an environment where all voices mattered. Have you ever considered how a single idea could change the trajectory of a lesson plan?

    One memorable instance was when I attended a panel featuring educators from different cultural backgrounds. Their stories highlighted the importance of context in learning and the ways cultural insights deeply resonate in teaching practices. It struck me how much I had taken for granted, and it made me rethink my own teaching methods. How often do we truly pause to evaluate the impact of cultural contexts on our learning experiences?

    In my own classroom, I started incorporating project-based learning that required students to collaborate with peers from diverse backgrounds. I vividly recall a project where students researched global environmental issues. Watching them engage not just with the content but also with each other’s perspectives was eye-opening. That collective effort led to a rich exchange of ideas, highlighting the importance of learning from each other. It’s fascinating to witness how different ideas can intertwine, pushing everyone toward deeper understanding and innovative solutions.

  • How I embrace the unknown in discussions

    Key takeaways:

    • Embracing uncertainty can spark personal and intellectual growth, fostering resilience through challenging discussions.
    • Open discussions encourage collaboration and trust, allowing diverse perspectives to transform ideas and enhance understanding.
    • Initiating conversations with open-ended questions and personal experiences helps establish connections and encourages participation.
    • Reflecting on discussions enhances personal growth and empathy, emphasizing the importance of vulnerability in fostering deeper understanding.

    Understanding the concept of unknown

    Understanding the concept of unknown

    The concept of the unknown can be both daunting and exhilarating. I often think about how discussions might go awry when we venture into unfamiliar territories. This makes me wonder: how many opportunities have I missed out on because I was afraid to explore new ideas?

    When I reflect on moments I’ve embraced uncertainty, I notice a pattern. Engaging in conversations where I lacked knowledge often revealed fresh perspectives I had never considered before. These interactions not only broadened my understanding but also enriched my personal growth, igniting a curiosity that I might not have tapped into otherwise.

    It’s essential to acknowledge that the unknown doesn’t always have to be overwhelming. Instead, it can be an invitation to step outside our comfort zones and explore novel concepts. I recall a lively debate I participated in, where none of us had the complete picture. Instead of feeling lost, we discovered new insights by piecing together our diverse experiences, which made the discussion incredibly rewarding. Isn’t it interesting how the unknown can lead to unexpected revelations?

    Importance of embracing uncertainty

    Importance of embracing uncertainty

    Embracing uncertainty is crucial for personal and intellectual growth. I remember a time when I joined a workshop that focused on topics I knew little about. Initially, I felt intimidated by my lack of knowledge, but that very uncertainty pushed me to ask questions and engage with others. Those exchanges highlighted that everyone else felt a bit uncertain too, which fostered a sense of community I hadn’t anticipated.

    Moreover, accepting that not all discussions will lead to immediate answers is liberating. There was an instance when a group of us tackled a complex issue during a panel discussion. We didn’t arrive at a clear solution, but what struck me was how the conversation sparked new ideas and collaborations that might not have emerged otherwise. It highlights an important point: uncertainty can be a catalyst for creativity and connection. Have you ever left a discussion without a resolution but found inspiration nonetheless?

    Lastly, I find that leaning into uncertainty cultivates resilience. For instance, during a recent exchange, I faced challenging questions that I wasn’t prepared for. At first, I felt vulnerable, but responding to those challenges prompted me to think on my feet. That experience taught me that discomfort often leads to significant insights. Embracing what we don’t know can actually strengthen our confidence in navigating future conversations. How might your discussions change if you welcomed uncertainty instead of fearing it?

    Benefits of open discussions

    Benefits of open discussions

    Open discussions create a fertile ground for diverse perspectives. I once participated in a roundtable where participants came from various backgrounds, each sharing their unique experiences. The richness of those differing viewpoints not only deepened my understanding of the topic but also challenged me to rethink my own assumptions. Have you ever had an idea completely transformed by someone else’s insight?

    What I love about engaging in open discussions is the opportunity for collaboration. I remember a session where a seemingly offhand comment led to a brainstorming session that birthed a new project idea. The spontaneity of sharing thoughts can trigger unexpected connections and innovations, revealing paths we hadn’t considered before. Isn’t it thrilling to think that a simple conversation could evolve into something impactful?

    Additionally, open discussions foster an environment of trust and respect. In a recent workshop, the vulnerability of sharing my uncertainties encouraged others to do the same. This mutual openness created a safe space where we could explore even the most challenging topics without judgment. How wonderful would it be if all conversations could nurture such an atmosphere?

    Strategies for initiating conversations

    Strategies for initiating conversations

    Engaging someone in a conversation can sometimes feel daunting, but it doesn’t have to be. One effective strategy that I’ve utilized is starting with open-ended questions. For example, during a recent networking event, I asked a fellow attendee, “What inspired you to pursue this field?” Their eyes lit up, and suddenly we were immersed in a passionate dialogue that felt both meaningful and enlightening. Isn’t it fascinating how a simple question can unlock someone’s story?

    Another approach I’ve found valuable is sharing a personal experience related to the topic at hand. When discussing new educational methodologies, I once shared a challenge I faced while implementing one at my own organization. This not only broke the ice but paved the way for others to share their experiences as well. Have you noticed how vulnerability often prompts deeper, more authentic discussions?

    Finally, it helps to observe the environment and connect with what others are interested in. I recall attending a seminar where a participant mentioned their favorite educational technology tool. I chimed in with my own experience using it, as well as a few struggles I faced. This not only initiated a dialogue but built a sense of camaraderie among us. How often do we overlook the power of shared interests as a bridge to meaningful conversations?

    Personal experiences with unknown topics

    Personal experiences with unknown topics

    When encountering unfamiliar topics, I often find myself in conversations that initially feel intimidating. I remember attending a panel discussion on artificial intelligence, a field I knew little about. At one point, a speaker delved into the ethical implications of AI, and I felt a mix of curiosity and apprehension. Instead of shying away, I stepped up, asking for clarification. That one question not only deepened my understanding but also revealed others in the room who shared my uncertainty. Isn’t it interesting how our vulnerability can foster connection?

    Another striking moment was during a workshop on cultural diversity, where I felt completely out of my depth. The facilitator began discussing experiences from her travels, and I couldn’t contain my excitement. I shared a brief story about my own encounter with a different culture, even though I felt it paled in comparison. To my surprise, others resonated with my experience, and what started as an unknown topic blossomed into a rich exchange of stories. How often do we underestimate the power of our unique perspectives?

    One time, I attended a lecture on neuroscience, a subject that was quite foreign to me. During a Q&A session, I hesitated to raise my hand, worried my question would seem simplistic. Eventually, I did ask about the implications of brain plasticity, and the ensuing conversation was exhilarating. I found not just answers, but also a network of like-minded individuals eager to explore the unknown together. Isn’t it remarkable how stepping into the unknown can ignite passion and curiosity in unexpected ways?

    Tips for encouraging participation

    Tips for encouraging participation

    Creating an environment where participation is encouraged starts with establishing trust. I remember hosting a community discussion about renewable energy. I made it clear that all questions, no matter how basic, were welcome. When someone hesitated to speak up, I shared my own initial confusion about certain terms. That openness can be contagious and inspires others to join in. Isn’t it fascinating how a simple gesture can break down barriers?

    Another strategy I’ve found effective is using small group discussions as a springboard. I recall a workshop where attendees were divided into pairs to discuss a challenging concept. This setup not only relaxed the atmosphere but also allowed individuals to share their opinions freely. I noticed how people began to shine when they felt comfortable, leading to more dynamic conversations later on. Have you ever noticed how ideas flow more easily in smaller circles?

    Lastly, I’ve learned that sharing tangible examples helps elevate the discussion. For instance, in a recent seminar on financial literacy, I shared my own experience of budgeting through a particularly tight month. This not only humanized the topic but also encouraged participants to share their own stories. Isn’t it amazing how sharing our failures and successes can foster a richer dialogue? Emphasizing relatability can encourage even the quietest individuals to contribute.

    Reflection on discussions and growth

    Reflection on discussions and growth

    Engaging in discussions often forces us to confront our uncertainties. I vividly recall a panel discussion on mental health where I hesitated to express my thoughts. The moment I shared my initial struggles, I felt an instant connection with others in the audience. That experience made me realize that moments of vulnerability can significantly deepen our understanding of one another.

    Reflecting on those interactions, I’ve recognized that growth stems from embracing discomfort. During a debate on education reform, I found myself challenged by perspectives I hadn’t considered before. Responding to opposing views not only broadened my understanding but also ignited a passionate dialogue that spurred everyone involved to think critically. Can you think of a time when a tough conversation led you to a new insight?

    I’ve learned that it’s in those moments of reflection that growth truly happens. After participating in a roundtable discussion on cultural differences, I took time to ponder how my worldview shifted. Those reflective moments helped me internalize the diverse perspectives shared, enriching my own thoughts and, ultimately, enhancing my ability to navigate future discussions with empathy and openness. How has reflection shaped your understanding in discussions?

  • How I embrace the evolving landscape of conversations

    Key takeaways:

    • Educational events foster dynamic interactions, enhancing learning beyond traditional methods through spontaneous conversations.
    • Active participation in discussions is vital; creating a safe environment encourages attendees to share their thoughts openly.
    • Adapting to evolving communication styles, including digital dialogues, requires emotional intelligence to maintain connections.
    • Future educational trends will emphasize digital platforms and AI tools, highlighting the importance of emotional engagement in discussions.

    Understanding educational events

    Understanding educational events

    Educational events are not just platforms for disseminating knowledge; they are vibrant arenas for dialogue and interaction. I remember attending a workshop where the energy in the room was palpable. Participants weren’t just passive listeners; they were engaged, sharing ideas and challenging each other’s perspectives. Have you ever experienced that kind of dynamic atmosphere? It opens up a world of learning beyond the traditional classroom setting.

    These events can take many forms, from conferences and seminars to webinars and informal meetups. Each format offers unique opportunities for connection and collaboration. Reflecting on my experiences, some of the most memorable insights came from casual conversations during breaks rather than the structured presentations themselves. Isn’t it fascinating how spontaneous interactions can lead to meaningful breakthroughs?

    Ultimately, understanding educational events requires recognizing their potential to foster community and growth. It’s about creating an environment where everyone feels comfortable to express their thoughts. I’ve found that when attendees are encouraged to voice their opinions, the entire experience transforms. Have you found that certain settings inspire deeper discussions? It’s about embracing those moments that can shape our understanding and expand our horizons.

    Importance of conversations in education

    Importance of conversations in education

    Conversations are at the heart of effective education, acting as catalysts for deeper understanding. I recall a group project during my college days where our late-night discussions led to an “aha” moment that clarified complex concepts we had struggled with individually. Have you ever found that talking things out can illuminate ideas in ways solo study cannot?

    Engaging in conversations allows learners to articulate their thoughts and challenge preconceived notions. One memorable instance for me was during a debate club meeting where differing viewpoints clashed—an experience that not only sharpened my critical thinking skills but also taught me the value of listening. It’s intriguing to think about how dialogues can transform a simple exchange of ideas into a rich, collaborative learning experience.

    Moreover, conversations foster a sense of belonging within educational settings. When I’ve facilitated workshops, I’ve often noted that participants relax more and share willingly when they feel heard. Have you noticed how community builds when there’s open dialogue? It’s these connections that drive motivation and enrich the overall educational journey, proving that conversation isn’t just important—it’s essential.

    Adapting to evolving communication styles

    Adapting to evolving communication styles

    One of the most significant shifts I’ve noticed in communication styles is the rise of digital interactions. I remember a recent online seminar where participants were encouraged to share their thoughts in real-time through chat. It was fascinating to see how quickly people adapted to this format, using emojis and shorthand to convey complex emotions succinctly. Doesn’t it make you wonder how much our language evolves just to keep pace with technology?

    As I reflect on my own experiences, I’ve found that transitioning from face-to-face conversations to virtual discussions can feel daunting. During a recent panel discussion, I struggled at first to gauge the audience’s reactions without the usual visual cues. Yet, as the conversation progressed, I learned to embrace tools like polls and comments to create a more interactive environment. How do you adapt when you can’t see the audience’s responses?

    Navigating these evolving communication styles also calls for heightened emotional intelligence. I recall a time when a participant struggled to convey a sensitive topic in an online chat. Rather than dismissing it, I responded with empathy and openness, sensing the vulnerability behind the words. This experience reinforced for me that as communication evolves, so must our ability to connect on a deeper level, ensuring that everyone feels valued, no matter the medium. Have you found that emotional resonance remains a cornerstone in every conversation, regardless of how it’s delivered?

    Engaging participants in discussions

    Engaging participants in discussions

    Engaging participants in discussions requires a keen understanding of their needs and feelings. I have often found that employing open-ended questions can ignite a lively conversation. In a workshop I led recently, I invited attendees to share their fears and hopes related to a new teaching approach. The resulting dialogue was not just informative; it felt invigorating to witness their enthusiasm and hear their unique perspectives. How do you encourage participants to reveal their thoughts?

    Creating a comfortable environment is also crucial for fostering engagement. I remember hosting a small roundtable where I made it a point to share a personal story of failure in my own educational journey. This vulnerability prompted others to open up about their challenges as well. It struck me how powerful it is to create a safe space where participants feel they can express their true selves. What experiences have you had that helped bridge the gap in discussions?

    Using technology can further amplify participant engagement. I once integrated a live Q&A feature during an online conference, which allowed attendees to submit questions anonymously. This not only increased participation but also encouraged diverse perspectives to surface. It was fascinating to see how people felt liberated to ask questions they might have hesitated to voice otherwise. Have you explored how tech tools can enhance real-time participation?

    Techniques for effective dialogue

    Techniques for effective dialogue

    Techniques for effective dialogue should focus on active listening, which is often overlooked. I’ve noticed that when I truly listen—without thinking of my next response—I catch nuances that shape the conversation significantly. Have you ever felt a shift in a dialogue simply because someone genuinely acknowledged your viewpoint?

    Mirroring the speaker’s emotions can also create a deeper connection. Once, during a heated argument about educational policies, I reflected back the frustration expressed by a colleague. Surprisingly, it led to us discussing our underlying concerns rather than just debating points. This technique reinforces empathy, making it easier for everyone involved to feel heard. How often do you take a moment to reflect what you hear in discussions?

    Another valuable method is to draw in quieter participants by inviting them specifically to share their thoughts. In a recent seminar, I made a point of calling on those who hadn’t spoken yet. This not only enriched our conversation but also made those participants feel valued. I found that engaging everyone can shift the entire dynamic of the dialogue. Have you tried this in your gatherings?

    Personal experiences in educational events

    Personal experiences in educational events

    Attending educational events often provides unexpected moments of connection. I recall a workshop where participants were encouraged to share their personal learning journeys. Listening to others’ struggles and triumphs made me realize that we’re all on similar paths, striving for growth and understanding in our own ways. Have you ever found comfort in someone else’s story during a learning experience?

    One memorable experience for me was a panel discussion on technology in education. The diverse opinions presented sparked my curiosity about perspectives I hadn’t considered before. I remember raising my hand, not to dispute, but to reflect my intrigue about a point made by a fellow attendee. The discussion flourished, and it was as if we were all weaving our insights into a richer tapestry of understanding. It made me think—how often do we create these collaborative moments in educational settings?

    I also cherish the moments when informal conversations emerge during breaks at conferences. I stumbled upon a group discussing innovative classroom strategies, and instead of the usual small talk, we delved into deeper topics. This spontaneous exchange fueled my passion for learning and reminded me how important it is to embrace these organic dialogue opportunities. Have you had similar experiences that transformed a simple event into a profound learning opportunity?

    Future trends in educational conversations

    Future trends in educational conversations

    Looking ahead, I see a notable shift towards digital platforms reshaping educational conversations. For instance, during a recent online seminar, I found myself engaged in a vibrant chat alongside global participants, sharing insights in real-time. This connectivity emphasizes how geographical barriers are fading, allowing for richer discussions that were once unimaginable. Have you ever considered how these digital spaces can foster more inclusive and diverse voices?

    I also anticipate the rise of AI-driven tools to facilitate discussions in educational settings. At one event, a participant introduced a program that could analyze chat inputs for popular themes. This sparked my interest in how such tools can enhance the learning experience by summarizing key points and suggesting relevant materials. Have you experienced technology enhancing the dialogue in your educational encounters?

    Moreover, I believe the focus on emotional intelligence in educational conversations will grow significantly. I recall a session that prioritized not just what we learn, but how we feel about learning. It encouraged openness and vulnerability, prompting questions like, “How can we support one another better in our learning journeys?” This shift toward empathy and connection within conversations is essential. Are we ready to embrace this deeper emotional engagement in our discussions?

  • How I embrace the winding paths of dialogue

    Key takeaways:

    • Educational events facilitate collaboration and innovation by encouraging dialogue and sharing personal insights, leading to transformative learning experiences.
    • Effective dialogue requires active listening, openness, and vulnerability, creating an environment where participants feel valued and engaged.
    • Embracing diverse perspectives enriches conversations and fosters deeper emotional connections, enhancing understanding among participants.
    • Intentional strategies, such as asking open-ended questions and sharing personal stories, can significantly enhance the quality of dialogue in educational settings.

    Understanding educational events

    Understanding educational events

    Educational events serve as pivotal experiences for both learning and community building. I remember attending a local science fair in my youth, where I eagerly shared my project about renewable energy. The excitement in the room was palpable, as each interaction sparked curiosity and deeper discussions among participants.

    These events often foster an environment ripe for collaboration and innovation. Have you ever noticed how a simple question can lead to a cascade of ideas? That moment at a workshop where I asked for feedback on my teaching methods resulted in a lively exchange. I discovered new strategies that I still implement today, proving that educational events are not just about dissemination but also about cultivating a dialogue.

    Moreover, educational events can be transformative, impacting our perspectives and emotions. The first time I attended a conference on inclusive education, I felt a profound sense of belonging. Listening to stories from educators facing similar challenges reminded me that we’re all part of a larger narrative, and it ignited a passion in me to advocate for accessible learning for everyone.

    Importance of dialogue in education

    Importance of dialogue in education

    Dialogue in education is not just a means of communication; it’s a crucial vehicle for understanding and connection. I vividly recall a seminar where participants shared their experiences with different teaching methods. One educator’s story about a student’s breakthrough moment sparked a profound conversation that reshaped how many of us viewed engagement in the classroom. Doesn’t it amaze you how sharing a personal insight can resonate and inspire others?

    There’s something powerful about the exchange of ideas in educational settings. When I attended a roundtable discussion on educational technology, the diverse perspectives voiced were eye-opening. Listening to someone present a challenge they faced with a particular tool led me to reevaluate my own practices, and in turn, I was able to share a simple solution that had worked wonders for me. Isn’t it fascinating how dialogue can facilitate growth not only for the speaker but for every listener in the room?

    The emotional atmosphere created by dialogue can greatly enhance the learning experience. I remember a workshop that emphasized active listening—an art form in itself. When I practiced truly focusing on my peers’ thoughts without formulating responses in my mind, I felt a greater sense of empathy and understanding. How often do we allow ourselves to be fully present in a conversation? That experience reinforced the notion that dialogue fosters not just knowledge, but also compassion and connection among educators and learners alike.

    Key elements of effective dialogue

    Key elements of effective dialogue

    Key elements of effective dialogue extend beyond mere exchanges of words; they require active listening, openness, and respect. I remember participating in a workshop where we practiced these skills in pairs. By genuinely listening to my partner without interrupting, I discovered layers of meaning in their perspective that I had never considered before. Isn’t it remarkable how just being fully present can transform the quality of our conversations?

    Another crucial element is the willingness to embrace vulnerability. I once shared a challenging experience in a group discussion, fearing judgment. Instead of criticism, I was met with understanding and similar stories from others. This courage to be open not only deepens connections but also invites others to share their truths. Doesn’t vulnerability create a space where true learning can thrive?

    Finally, the balance of speaking and listening plays a vital role in effective dialogue. I find that when I consciously give more weight to listening, I gain valuable insights that inform my understanding. It’s a give-and-take that fosters an environment where everyone feels valued. Have you ever noticed how dialogues feel more meaningful when participants actively engage rather than dominate the conversation?

    Strategies for engaging dialogue

    Strategies for engaging dialogue

    Engaging in dialogue requires intentional strategies that foster connection and understanding. One approach I’ve found effective is asking open-ended questions. In a discussion about educational best practices, I posed a question that encouraged participants to explore their experiences. The room filled with thoughtful responses and reflections. Have you ever noticed how an open question can shift the energy of a conversation, inviting deeper insights?

    Another strategy is to incorporate storytelling. I recall sharing a personal story about a time when a student taught me a profound lesson during a mentoring session. This not only sparked interest but also prompted others to share their own narratives. The beauty of storytelling lies in its ability to create emotional resonance, making the dialogue feel more personal. Isn’t it fascinating how a simple story can open the floodgates of discussion?

    Creating a safe space for dialogue is perhaps the most fundamental strategy. During a recent community event, I observed how establishing ground rules for respect and confidentiality transformed the atmosphere. Participants felt more comfortable expressing their thoughts, leading to richer conversations. Have you experienced a situation where a safe environment empowered you to speak your mind? It truly makes a difference in the level of engagement and authenticity in a dialogue.

    Embracing diverse perspectives

    Embracing diverse perspectives

    Embracing diverse perspectives is essential for creating a rich dialogue. I remember a panel discussion I attended where experts from different fields shared their takes on education technology. The insights varied dramatically, illustrating how each background brought a unique lens to the topic. Have you considered how your own experiences shape your views, and how others’ can expand your understanding?

    When I hosted a workshop recently, I purposefully invited educators from various disciplines and cultural backgrounds. The result was a vibrant exchange of ideas, as each participant challenged the norms I had previously accepted. It struck me then; diversity isn’t just about different faces around the table, but about the wealth of experiences that can reshape our collective thinking. Isn’t it invigorating to think that by listening to others, we can refine our own beliefs?

    One poignant moment occurred when a teacher shared her struggles integrating technology in a low-resource environment. As others listened, their expressions changed from skepticism to empathy. It made me realize that embracing diverse perspectives is not just about gathering opinions; it’s about developing a deeper emotional connection that nurtures understanding and compassion. How often do we take time to truly listen, rather than just waiting for our turn to speak?

    Personal experiences with dialogue

    Personal experiences with dialogue

    There was a workshop where I vividly recall participating in a role-playing exercise. Each of us was given a character that reflected various educational challenges. As I slipped into the shoes of a frustrated parent, I felt the weight of that perspective instantly. It was a powerful reminder that dialogue isn’t just about exchanging words; it’s about embodying different realities and tuning into the emotional undertones that color our discussions. How often do we let ourselves truly step into someone else’s world?

    In another experience, I moderated a community forum aimed at discussing mental health resources in local schools. It was eye-opening to hear from students who bravely shared their stories. Their raw honesty fostered a deep connection among the attendees, and I found myself moved by shared vulnerabilities. I realized then how vital such dialogues can be—they create bridges of understanding that simply couldn’t be built through superficial conversations. Have you ever felt that shift when someone opens up, transforming a talk into a moment of collective growth?

    Reflecting on these instances, I understand that dialogue is not just a technique; it’s a journey laden with emotional discovery. One particularly impactful moment happened when a colleague revealed the barriers she faced as a newcomer in our educational community. Hearing her recount her experience brought tears to my eyes, igniting a commitment in me to advocate for inclusivity. It made me ponder, how can we ensure every voice is not just heard but valued?

    Tips for fostering meaningful conversations

    Tips for fostering meaningful conversations

    To foster meaningful conversations, it’s essential to prioritize active listening. I remember sitting in a panel discussion where a fellow educator spoke passionately about a creative teaching method. Instead of merely waiting for my turn to speak, I focused on truly understanding her perspective. That moment taught me that showing genuine interest often prompts the other person to dive deeper, resulting in a richer dialogue. Have you ever noticed how a simple nod or an encouraging smile can make the speaker feel more valued?

    Another effective strategy is to ask open-ended questions. During a community workshop on educational reform, I posed a question that began with “What if?” That approach led to an unexpected outpouring of ideas that expanded our conversation far beyond what I had anticipated. It reminded me that when we create space for curiosity, we not only invite diverse viewpoints but also encourage others to think critically about their experiences. Isn’t it fascinating how a single question can unlock a treasure trove of insights?

    Lastly, embracing vulnerability in dialogue can deepen connections. I vividly recall a discussion where I shared my struggles with balancing work and personal life. To my surprise, several participants opened up about similar challenges. This exchange not only transformed the atmosphere but also reinforced the idea that vulnerability invites authenticity. Have you ever experienced the magic that happens when people let their guards down and share their truths? It’s in those moments that authentic relationships and meaningful conversations truly flourish.

  • How I embrace the complexities of human interactions

    Key takeaways:

    • Active listening and acknowledging feelings foster genuine connections and collaboration in human interactions.
    • Educational events inspire professional development and create lasting networks through shared experiences and diverse perspectives.
    • Embracing complexities in interactions enhances empathy, problem-solving skills, and resilience.
    • Creating an inclusive atmosphere and integrating storytelling during discussions significantly boosts engagement and connection among participants.

    Understanding human interactions

    Understanding human interactions

    Understanding human interactions is a multifaceted endeavor. From my own experiences, I’ve noticed that it’s often in the nuances of body language and tone of voice where true meaning resides. Have you ever felt a disconnect between someone’s words and their expression? It makes you realize how vital non-verbal cues are, shaping our perceptions more than we sometimes acknowledge.

    During a recent workshop, I witnessed the power of active listening in fostering genuine connections. As participants engaged in small groups, I observed how simply acknowledging another’s feelings boosted morale and collaboration. It struck me that when we give our full attention, we unlock the potential for deeper understanding, something that is often overlooked.

    Moreover, human interactions thrive on empathy—a quality that goes beyond mere sympathy. I recall a moment when a friend shared a personal challenge; my response was not just to offer advice but to validate their feelings. Wouldn’t you agree that this level of connection can turn a simple conversation into a transformational experience? This is what makes understanding each other so important.

    Importance of educational events

    Importance of educational events

    Educational events serve as a vital platform for knowledge exchange and skill enhancement. I still remember attending a seminar where experts shared insights on emerging technologies. The information shared was not just theoretical; it inspired me to implement new strategies in my own work, showcasing the profound impact these gatherings can have on professional development.

    Moreover, these events foster a sense of community among participants. I often find that when people come together, they share experiences that resonate on a personal level. Have you ever left an event feeling more energized and motivated, simply because you connected with like-minded individuals? It’s that shared passion which creates lasting networks and collaborations.

    In addition, educational events often challenge our existing perspectives. During a panel discussion I attended, a speaker presented an unconventional viewpoint that initially caught me off guard. But as I reflected on their argument, I realized the value in considering diverse viewpoints. This is the beauty of educational gatherings; they encourage us to step outside our comfort zones and expand our understanding of the world.

    Benefits of embracing complexities

    Benefits of embracing complexities

    Embracing the complexities of human interactions greatly enhances our ability to develop empathy. I remember volunteering at a community workshop where participants shared their personal challenges. Listening to their stories allowed me to understand different perspectives deeply, making it easier to connect with people on a more meaningful level. Isn’t it fascinating how stepping into another person’s shoes can completely alter our view of a situation?

    Moreover, by embracing these complexities, we foster better problem-solving skills. At one educational conference, I found myself part of a group brainstorming session. Our discussions often zigzagged between ideas, but it was in this divergence that we discovered creative solutions. This experience taught me that navigating through conflicting opinions could lead us to innovative outcomes. Have you ever had an unexpected idea emerge from a heated debate?

    Lastly, complexities in human interactions cultivate resilience and adaptability. I’ve faced situations where miscommunication caused tension during group projects, but by addressing those challenges openly, we strengthened our collaboration. It’s incredible how acknowledging the messy parts of interaction can lead to growth, both personally and professionally. How do you find yourself adapting when faced with unexpected challenges?

    Strategies for effective communication

    Strategies for effective communication

    Effective communication is often about active listening. I learned this the hard way during a group project where I was too focused on expressing my own ideas rather than understanding my teammates’ points of view. It wasn’t until I started genuinely listening that I realized how much I had missed. Have you ever felt that shift in a conversation when you fully tune in to what someone else is saying?

    Another strategy that has proven valuable for me is the clarity of expression. During a workshop, I noticed that when I articulated my thoughts clearly, others responded better. Keeping my language simple and direct not only helped reduce misunderstandings but also encouraged others to contribute more openly. Isn’t it remarkable how a few well-chosen words can pave the way for a richer dialogue?

    Lastly, non-verbal cues often speak louder than words. I recall a time when a friend’s facial expressions during a discussion conveyed their discomfort long before they voiced it. Recognizing these signals can enhance communication drastically. Have you ever noticed how someone’s body language shifted the tone of an interaction? It’s a reminder that effective communication extends beyond what we say.

    Techniques for fostering engagement

    Techniques for fostering engagement

    Fostering engagement often starts with creating an inclusive atmosphere. I remember attending an event where the facilitator made a point to address everyone by name, which instantly made me feel valued. Have you ever noticed how simply being acknowledged can inspire someone to share their thoughts? It’s a small but powerful technique that encourages participants to open up and contribute.

    Another effective approach I’ve encountered is using interactive activities that break the ice. During one workshop, we were divided into small groups to brainstorm ideas. This not only sparked creativity but allowed for a sense of camaraderie to develop among participants. Don’t you think that when we work together, we build stronger connections? Engaging people in hands-on experiences can truly transform the energy of the room.

    Lastly, integrating storytelling into discussions can profoundly captivate an audience. I once shared a personal story related to the topic we were discussing, and I could see the shift in engagement instantly. People leaned in, eager to hear more. Have you ever felt connected to someone’s experience in a way that made you reflect on your own? Stories have a unique power to resonate, fostering deeper connections among participants.

    Personal experiences in interactions

    Personal experiences in interactions

    Personal experiences in interactions can often reveal unexpected insights. I recall a time when I attended a community seminar on conflict resolution. As we shared our personal challenges, I felt a wave of vulnerability wash over the room. Have you ever stood in a circle with strangers and uncovered shared fears? That moment reminded me of the unspoken barriers we often maintain, even with those we barely know.

    Another instance that comes to mind is the time I participated in a peer feedback session at a professional development workshop. When I received constructive criticism alongside praise during our discussions, it felt like a real gift. It made me ponder—how often do we provide balanced feedback in our daily interactions? The experience deepened my understanding of how honesty can forge trust and respect, transforming what could be a mundane meeting into a collaborative learning environment.

    One of the most memorable lessons I learned in interactions was during a roundtable discussion on education reform. I was passionate about my views, but when I noticed someone shyly raising their hand, my instinct was to invite them to speak. Watching their confidence blossom and witnessing the appreciation in their eyes sparked a realization: do we sometimes overlook the quiet voices in our conversations? Encouraging those who hesitate to share not only enriches the discussion but also strengthens relationships and promotes mutual respect.

    Lessons learned from events

    Lessons learned from events

    Attending workshops often opens my eyes to new perspectives, especially through the lens of collaboration. During one particularly enlightening session on team dynamics, we were tasked with solving a complex problem as a group. I realized how critical it is to listen actively; the moment I stopped to truly absorb others’ ideas, our collective creativity flourished. Have you ever watched a simple conversation transform into a vibrant exchange of innovative solutions? It made me appreciate that every voice is a vital piece of the puzzle.

    Another significant lesson came from a conference where different schools of thought were represented. I found myself in a heated debate about teaching methodologies, feeling passionate about my stance until one attendee shared her story of struggle with traditional practices. Her vulnerability shifted the discussion entirely. How often do our biases cloud our understanding of others’ experiences? That moment taught me the importance of empathy in discussions, reminding me to approach disagreements with an open heart.

    Lastly, I remember a networking event where I initially felt out of place. Striking up conversations with strangers felt daunting, yet when I discovered shared interests, those interactions became transformative. Was it the common ground that eased my nerves or the warmth of shared curiosity? I learned that every encounter holds the potential for connection; sometimes, stepping out of our comfort zones leads to the most valuable relationships and insights.

  • How I embrace learning through participant engagement

    Key takeaways:

    • Participant engagement transforms passive listening into active involvement, enhancing the learning experience through emotional connections and shared insights.
    • Interactive strategies, such as small group discussions and technology use (live polls, gamification), foster deeper conversations and collaboration among attendees.
    • Personal storytelling and experiential learning (role-playing, hands-on activities) create a sense of community and promote introspection, deepening participants’ understanding.
    • Future engagement plans focus on inclusivity and ongoing discussions through follow-ups, leveraging technology for real-time interaction and sustained connections.

    Understanding participant engagement

    Understanding participant engagement

    Understanding participant engagement goes beyond simply having attendees show up. I remember attending a workshop where the facilitator didn’t just lecture; they sparked conversations and encouraged us to share our thoughts. This created an environment where participants actively contributed, transforming passive listeners into engaged learners. Can you recall a time when you felt genuinely involved in an event? It’s those moments of connection that make learning memorable.

    One key aspect of participant engagement is the emotional response it elicits. When I see others passionately discussing a topic or thoughtfully considering new ideas, it ignites a similar enthusiasm in me. This emotional investment fosters a richer learning experience, where knowledge is not just consumed but shared and expanded upon collectively. Have you ever felt that surge of excitement when your voice mattered in a discussion? It’s powerful.

    Moreover, the dynamics of engagement can vary significantly based on the format of the event. For example, I once participated in a role-playing exercise during a training session. It felt transformative to step into another’s shoes and actively engage with content through simulation. This hands-on approach heightened my understanding of complex topics in ways that traditional lectures struggled to achieve. How often do we underestimate the potential of experiential learning? Engaging participants through varied methods not only makes the experience enjoyable but deepens comprehension.

    Strategies for enhancing participant engagement

    Strategies for enhancing participant engagement

    In my experience, incorporating interactive technologies, such as live polls or quizzes, can significantly enhance participant engagement. I recall facilitating a webinar where we used real-time feedback tools, and it transformed the session. Participants began to express their opinions on screen, which created a sense of camaraderie and excitement. Have you ever felt more invested in a topic when you directly impacted the discussion? It can shift the dynamics from a one-way lecture to a dynamic conversation.

    Another effective strategy I’ve found is to break participants into smaller groups for discussions or activities. I once attended a seminar that divided us into teams to tackle specific case studies. The atmosphere buzzed with energy as we brainstormed ideas and strategized together. This format not only fostered collaboration but allowed individuals to voice their insights without the intimidation of a large audience. Have you ever noticed how sharing in smaller circles often leads to deeper connections? It’s a simple yet powerful shift that can elevate engagement.

    Additionally, providing opportunities for participants to share their experiences creates a richer learning environment. I remember during a workshop when participants were encouraged to share their personal stories related to the topic. This practice not only humanized the content but allowed us to learn from each other. How often do we overlook the wealth of knowledge present in our peers? Encouraging storytelling cultivates a deeper understanding and fosters a community of learners, making the experience memorable and impactful.

    Techniques for interactive learning

    Techniques for interactive learning

    One technique that I find particularly effective is the use of gamification to create a fun and engaging learning atmosphere. I remember leading a workshop where we introduced a game element—participants earned points for completing tasks and answering questions. The room lit up with competitive spirit, and suddenly, everyone was eager to participate. Have you ever noticed how a little friendly competition can motivate even the most reserved individuals to step forward?

    Another powerful method is incorporating hands-on activities where participants can apply what they’ve learned in a practical context. During a recent training session, we created a mock project where participants had to develop a plan using the tools discussed. The excitement was palpable; people were engrossed in discussions, problem-solving, and collaborating in ways that a lecture simply couldn’t inspire. Wouldn’t you agree that applying knowledge in real time seems more effective than just absorbing information passively?

    Finally, leveraging technology to facilitate peer-to-peer learning is an approach that has served me well. I recall a virtual conference where we set up breakout rooms, allowing participants to share insights and challenges within smaller groups. This interaction not only enabled diverse perspectives to surface but also helped build a supportive network among attendees. How often have you walked away from a discussion feeling inspired by the insights of your peers? These connections can enhance understanding and create lasting relationships within the learning community.

    Personal experiences with participant engagement

    Personal experiences with participant engagement

    Reflecting on my past experiences with participant engagement, I can’t help but recall a workshop where we encouraged attendees to share their personal learning journeys. As each story unfolded, I noticed the room transforming into a safe space filled with vulnerability and connection. Do you ever find that sharing personal experiences fosters a deeper understanding and creates a sense of community among participants?

    In another instance, I organized a live polling activity during a seminar. Participants could express their opinions on critical topics in real-time, fostering immediate interaction and feedback. The moment I shared the results, I felt a wave of enthusiasm and curiosity wash over the audience, compelling everyone to engage in a lively discussion. It’s fascinating how instant feedback can spark meaningful conversations and motivate individuals to articulate their thoughts.

    Collaborating in small groups has also been a standout method for me. During a recent event, I witnessed a diverse group come together to tackle a complex problem. The dynamic that emerged was remarkable—each person brought their unique perspective, leading to creative solutions. Isn’t it incredible how collaboration enhances the learning experience and ignites innovation among participants?

    Reflecting on learning through engagement

    Reflecting on learning through engagement

    Reflecting on learning through engagement, I’ve found that actively participating in discussions can radically shift one’s understanding. During a recent workshop, I engaged in a debate on educational methodologies. As I passionately defended my viewpoint, it struck me how articulating my ideas not only clarified my own beliefs but also opened my eyes to alternative perspectives. Have you experienced that moment of clarity when discussing ideas with others?

    In another scenario, I took part in a reflective practice session with a mentor group. The atmosphere was electric, and I felt my excitement grow as we shared our successes and setbacks. Listening to others’ reflections sparked introspection within me. It felt like a mirror reflecting my own learning journey, allowing me to identify areas for improvement. This kind of reflective engagement can prompt profound self-discovery, don’t you think?

    Lastly, I remember attending a conference where we utilized role-playing exercises to simulate real-world challenges. This immersive experience was not just about acting; it forced me to step into someone else’s shoes, fostering empathy and deeper insight. It’s remarkable how engaging with new roles can deepen our understanding of complex concepts. Have you tried something similar that changed your perspective?

    Future plans for participant engagement

    Future plans for participant engagement

    Future plans for participant engagement will focus on creating a more interactive and inclusive environment. One idea I have is to implement small group discussions during events. I believe that breaking larger sessions into smaller, focused groups can facilitate deeper conversations and allow participants to voice their thoughts more freely. Have you ever been in a large group and felt hesitant to speak up? Smaller groups can dissolve that barrier.

    Another exciting direction involves using technology to enhance engagement. Imagine incorporating live polls or Q&A sessions where participants can share their opinions in real-time. From my experience, seeing instant feedback can energize a room and foster a sense of community among attendees. It’s incredible how technology can bridge gaps and make everyone feel connected, isn’t it?

    Additionally, I foresee the introduction of follow-up sessions after events to maintain momentum. These sessions could allow participants to reconnect over shared topics and continue discussions, deepening their learning. I can still recall a workshop where we had a follow-up chat weeks later; it reignited my enthusiasm and clarified lingering questions. Wouldn’t it be powerful to carry that engagement forward?