it-swarm.com.de

Verschiedene Farbadministrationsleisten für Entwicklung, Inszenierung und Produktion

Ich möchte es so einrichten, dass alle meine Websites eine andere Farbadministrationsleiste haben. Entwicklung und Produktion. Ich benutze Git, um meinen Code zu pushen.

Jede Hilfe wäre dankbar.

1
sethg

Mithilfe eines Filters können Sie das Administratorfarbschema festlegen, das Farben für die Administratorleiste enthält:

<?php // add a filter
add_filter('get_user_option_admin_color', 'wpse_313419_conditional_admin_color');
// 
function wpse_313419_conditional_admin_color($result) {
    // Dev: use 'light' color scheme
    if(get_site_url() == 'http://dev.example.com') {
        return 'light';
    // Staging: use 'blue' color scheme
    } elseif(get_site_url() == 'http://staging.example.com') {
        return 'blue';
    // Production (all other cases): use 'sunrise' color scheme
    } else {
        return 'sunrise';
    }
} ?>

Sie können die 8 integrierten Farbschemata anzeigen, indem Sie das Profil eines Benutzers bearbeiten und oben die Optionen für das "Admin-Farbschema" anzeigen. Sie verwenden sie nur als Kleinbuchstaben. Der Filter überschreibt die Einstellungen einzelner Benutzer und erzwingt das Farbschema Ihrer Wahl. Wenn Sie möchten, können Sie auch Ihre eigenen benutzerdefinierten Farbschemata erstellen.

Wenn sich Ihre Site-URLs häufig ändern, können Sie einen weiteren Schritt ausführen: Wenn das Design aktiviert ist, speichern Sie die Umgebung als Option und rufen Sie sie dann mit get_option anstelle von get_site_url auf.

Wenn Sie nur ein Plugin verwenden möchten, um all dies für Sie zu erledigen, befindet sich mindestens eine fertige Lösung im WP Plugin-Repository.

3
WebElaine

Zum Glück ist die von Ihnen gewünschte Lösung eigentlich recht einfach. Verwenden Sie einfach den Aktions-Hook 'wp_before_admin_bar_render' und geben Sie CSS aus, um die colorund backgrounddes HTML-Elements durch die idvon wpadminbarzu ändern.

Nachfolgend finden Sie einen Code, den Sie in einer Datei in Ihrem Design und in require() aus der functions.php-Datei Ihres Themas speichern, einen Plugin-Header hinzufügen und als Plugin verwenden, zu einem vorhandenen Plugin hinzufügen und require() hinzufügen oder einfach in /mu-plugins und WordPress kopieren können Laden Sie es automatisch.

Stellen Sie jedoch sicher, dass Sie die Funktion _get_color_pair() so ändern, dass ein anderes Farbpaar zurückgegeben wird, je nachdem, welcher Host den Ladevorgang ausführt:

<?php

class WPSE_313419 {
    static function on_load() {
        add_action(
            'wp_before_admin_bar_render',
            [ __CLASS__, '_wp_before_admin_bar_render_99' ],
            99
        );
    }

    static function _wp_before_admin_bar_render_99() {
        $color_pair = self::_get_color_pair();
        $html = <<<HTML
<style type="text/css">
    #wpadminbar{color:{$color_pair->color};background:{$color_pair->background};}
</style>
HTML;
        echo $html;
    }

    /**
     * Modify this function to return the colors you want
     * based on the value of get_site_url() or based on
     * a constant defined in each Host's /wp-config.php.
     *
     * @return object
     */
    private static function _get_color_pair() {
        return (object)array(
            'color' => 'white',
            'background' => 'red',
        );
    }
}
WPSE_313419::on_load();

Irgendwelche Fragen? Einfach fragen.

Hoffe das hilft.

-Mike

1
MikeSchinkel