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();
Schreibe einen Kommentar