Lesefortschritt:

CSS-Cache des Divi-Themes im Word­Press-Backend bequem leeren

18. Oktober 2023 | Divi-Theme, functions.php

Trick # 284 | Dieser Beitrag beinhaltet 835 Wörter. – Geschätzte Lesezeit: ca. 5 Minuten.

Das Divi-Theme kann Ihr CSS-Stylesheet in einen Cachespeicher schreiben. Das hat Vorteile: Das Stylesheet wird nicht bei jedem Seitenaufruf aus der Datenbank eingelesen, sondern liegt der Word­Press-Website als Datei vor. Das beschleunigt den Seitenaufbau. Jedoch hat dies auch Nachteile, welche Sie mit dem heutigen Code-Hack ausmerzen können.

Wenn Sie nämlich Änderungen am Stylesheet vornehmen, kann es sein, dass diese auf der Live-Seite nicht sofort sichtbar sind. Der Grund: Im Cache liegt noch die alte Version des CSS-Stylesheets und die neuen Anpassungen aus der Datenbank werden nicht ausgelesen.

Die Abhilfe ist einfach: Der CSS-Cache muss gelöscht werden, so dass beim nächsten Seitenaufruf die Änderungen aus der Datebank ausgelesen werden. Das ist sehr einfach möglich, indem Sie dem Word­Press-Backend die entsprechende Funktion beibringen. Dies geschicht mit folgendem Code, den Sie der Datei functions.php (im Backend unter Design/Theme-Editor) hinzufügen:

/**
 * Add Custom Admin Bar Menu Link
 *
 * @param $admin_bar
 *
 * @return void
 */
if (!function_exists('clear_statcss_maybe_admin_bar_link')):
    function clear_statcss_maybe_admin_bar_link($admin_bar)
    {
        $admin_bar->add_menu([
            'id' => 'clear_statcss',
            'title' => '<span class="ab-icon"></span><span class="ab-label">Divi-Cache leeren</span>',
            'href' => '',
            'meta' => [
                'title' => '',
            ],
        ]);
        $admin_bar->add_menu([
            'id' => 'clear_static_css',
            'parent' => 'clear_statcss',
            'title' => sprintf('<span data-wpnonce="%1$s">%2$s</span>', wp_create_nonce('clear_static_css'), esc_html('Statische CSS-Dateien löschen')),
            'href' => 'javascript:void(0)',
        ]);
        $admin_bar->add_menu([
            'id' => 'clear_statcss_clear_local_storage',
            'parent' => 'clear_statcss',
            'title' => esc_html('Lokalen Speicher löschen'),
            'href' => 'javascript:void(0)',
        ]);
    }

    add_action('admin_bar_menu', 'clear_statcss_maybe_admin_bar_link', 999);
endif;
/**
 * Add Javascript In Admin Footer
 *
 * @return void
 */
if (!function_exists('clear_statcss_maybe_admin_scripts')):
    function clear_statcss_maybe_admin_scripts()
    {
        ?>
        <script>
            jQuery(document).ready(function () {
                var adminAaxURL = '<?php echo admin_url('admin-ajax.php'); ?>';
                var isAdmin = '<?php echo is_admin(); ?>';
                // Clear Static CSS
                jQuery("#wp-admin-bar-clear_static_css").click(function (e) {
                    e.preventDefault();
                    jQuery.ajax({
                        type: 'post',
                        dataType: 'json',
                        url: adminAaxURL,
                        data: {
                            'action': 'clear_static_css',
                            '_wpnonce': jQuery(this).find('span').data('wpnonce')
                        },
                        success: function (response) {
                            if (response.success) {
                                let successData = response.data;
                                if (isAdmin) {
                                    let messageHTML = '<div class="notice notice-success clear-statcss-message"><p>' + successData + '</p></div>';
                                    if (jQuery('body .wrap h1').length > 0) {
                                        jQuery('body .wrap h1').after(messageHTML);
                                    } else {
                                        jQuery('body #wpbody-content').prepend(messageHTML);
                                    }
                                    setTimeout(function () {
                                        jQuery(".clear-statcss-message").remove();
                                    }, 3500);
                                } else {
                                    alert(successData);
                                }
                            }
                        },
                    });
                });
                // Clear Local Storage
                jQuery("#wp-admin-bar-clear_statcss_clear_local_storage").click(function (e) {
                    e.preventDefault();
                    let msgText = 'Der lokale Speicher wurde gelöscht!';
                    window.localStorage.clear();
                    if (isAdmin) {
                        let messageHTML = '<div class="notice notice-success clear-statcss-message"><p>' + msgText + '</p></div>';
                        if (jQuery('body .wrap h1').length > 0) {
                            jQuery('body .wrap h1').after(messageHTML);
                        } else {
                            jQuery('body #wpbody-content').prepend(messageHTML);
                        }
                        setTimeout(function () {
                            jQuery(".clear-statcss-message").remove();
                        }, 3500);
                    } else {
                        alert(msgText);
                    }
                });
            });
        </script>
        <?php
    }

    add_action('admin_footer', 'clear_statcss_maybe_admin_scripts');
    add_action('wp_footer', 'clear_statcss_maybe_admin_scripts');
endif;
/**
 * Process Ajax Request
 *
 * @return void
 */
if (!function_exists('clear_statcss_maybe_ajax_request')):
    function clear_statcss_maybe_ajax_request()
    {
        if ((isset($_POST['action']) && 'clear_static_css' === sanitize_text_field($_POST['action'])) && (isset($_POST['_wpnonce']) && wp_verify_nonce($_POST['_wpnonce'], 'clear_static_css'))) {
            ET_Core_PageResource::remove_static_resources('all', 'all');
            wp_send_json_success(esc_html('Die statischen CSS-Dateien wurden gelöscht!'), 200);
        }
    }

    add_action('wp_ajax_clear_static_css', 'clear_statcss_maybe_ajax_request');
endif;

Nun sehen Sie im Backend Ihrer Divi-Website im Kopfbereich (sprich: im schwarzen Balken) einen neuen Link mit den entsprechenden Funktionen.

So einfach geht das.

Werbung

Word­Press-Sitemap deaktivieren

Seit der Version 5.5 bietet Word­Press (endlich) die Funktion einer eingebauten Sitemap an, mit welcher Google & Co. über Änderungen und neue Beiträge auf dem Laufenden gehalten werden. Deren Funktionen sind jedoch etwas eingeschränkt und viele ...
Keine Inhalte gefunden.

Werbung

 

Pin It on Pinterest

Share This
Überblick über den Datenschutz

Diese Website verwendet Cookies, damit wir Ihnen die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in Ihrem Browser gespeichert und dienen dazu, Sie wiederzuerkennen, wenn Sie auf unsere Website zurückkehren, und unserem Team zu helfen, zu verstehen, welche Bereiche der Website Sie am interessantesten und nützlichsten finden.