play 1317103 1920
Bild von Andreas Almstedt auf Pixabay

Benutzerdefinierte Reihenfolge für “Meine Websites” Menü in Multisite-Network

Inspiriert vom Plugin Code in Reorder My Sites. In der Funktion order() wird die Reihenfolge der Blog-IDs benutzerdefiniert. Im Anwendungsfall konnte ich das so machen, weil zu den sechs bestehenden Sites keine neuen mehr geplant waren.

Nun könnte man für das Einstellen der Reihenfolge noch eine Netzwork-Einstellungsseite anlegen, um die Blogs per Drag & Drop anzuordnen (was in einem wachsenden Netzwerk sinnvoll wäre, damit keines aus der Reihe fällt).

<?php 
/*
 * Plugin Name: FLXO Reorder My Sites
 * Description: Custom order for sites
 * Network: true
 */

class FLXO_Reorder_Sites {

    function __construct() {
        if( is_multisite() ) {
            add_action( 'admin_bar_menu' , array( $this , 'admin_bar_menu' ) );
        }
    }

    function order() {
        return array(1,3,5,4,6,2);
    }
    
    function admin_bar_menu() {
        global $wp_admin_bar;

        $sites = $wp_admin_bar->user->blogs;

        foreach( $sites as $site_id=>$site ) {
            $blog_names[$site_id] = strtoupper( $site->blogname );
        }

        $wp_admin_bar->user->blogs = array();

        /**
         * custom sort by set IDs
         */

        foreach ( $this->order() as $id ) {
            if( isset( $sites[$id] ) ) {
                unset( $blog_names[$id] );
                $wp_admin_bar->user->blogs{$id} = $sites[$id];
            }
        }

        /** 
         * missing site ids in function?
         * sort them alphabetically after custom ordered 
         */
        if ( count( $blog_names ) ) {

        asort( $blog_names );

            foreach( $blog_names as $id => $name ) {
                $wp_admin_bar->user->blogs{$id} = $sites[$id];
            }
        }

    }
}

$reorder_my_sites = new FLXO_Reorder_Sites();

Über Gabriele Lässer

WordPress Sorgen? - Nicht mit mir! Ich freue mich auf spannende Herausforderungen

Kommentar schreiben

E-Mail-Adresse wird nicht veröffentlicht.

Overlay background for modal content