PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.4
Elementor Website Builder – more than just a page builder v4.3.4
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
← All changes | core/base/document.php +25 -2 4.2.1 → 4.3.4 View file →
@@ -1869,10 +1869,14 @@
1869 1869
1870 1870 $this->do_print_elements( $elements_data );
1871 1871
1872 1872 if ( $should_store_scripts ) {
1873 - $scripts_to_queue = array_values( array_diff( $wp_scripts->queue, $scripts_ignored ) );
1874 - $styles_to_queue = array_values( array_diff( $wp_styles->queue, $styles_ignored ) );
1873 + $scripts_to_queue = $this->get_cached_asset_handles( array_diff( $wp_scripts->queue, $scripts_ignored ), 'scripts' );
1874 + $styles_to_queue = $this->get_cached_asset_handles( array_diff( $wp_styles->queue, $styles_ignored ), 'styles' );
1875 + $styles_to_queue = array_values( array_filter(
1876 + $styles_to_queue,
1877 + [ $this, 'should_enqueue_cached_style' ]
1878 + ) );
1875 1879 }
1876 1880
1877 1881 $cached_data = [
1878 1882 'content' => ob_get_clean(),
@@ -1893,8 +1897,12 @@
1893 1897 }
1894 1898
1895 1899 if ( ! empty( $cached_data['styles'] ) ) {
1896 1900 foreach ( $cached_data['styles'] as $style_handle ) {
1901 + if ( ! $this->should_enqueue_cached_style( $style_handle ) ) {
1902 + continue;
1903 + }
1904 +
1897 1905 wp_enqueue_style( $style_handle );
1898 1906 }
1899 1907 }
1900 1908 }
@@ -1907,8 +1915,23 @@
1907 1915 }
1908 1916
1909 1917 echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1910 1918 }
1919 + }
1920 +
1921 + private function get_cached_asset_handles( array $rendered_handles, string $asset_type ): array {
1922 + $page_assets = $this->get_meta( Assets_Iteration_Action::ASSETS_META_KEY );
1923 + $saved_handles = is_array( $page_assets ) ? ( $page_assets[ $asset_type ] ?? [] ) : [];
1924 +
1925 + return array_values( array_unique( array_merge( $rendered_handles, $saved_handles ) ) );
1926 + }
1927 +
1928 + private function should_enqueue_cached_style( $style_handle ): bool {
1929 + if ( 0 !== strpos( $style_handle, 'elementor-post' ) ) {
1930 + return true;
1931 + }
1932 +
1933 + return (bool) wp_styles()->query( 'elementor-frontend', 'registered' );
1911 1934 }
1912 1935
1913 1936 protected function do_print_elements( $elements_data ) {
1914 1937 $this->update_runtime_elements( $elements_data );