Потрібна допомога в алфавітному порядку сортування "Мої сайти"


9

У мене 40+ сайтів, які відображаються на сторінці "Мої сайти" з більш запланованими. На жаль, WordPress не сортує їх в алфавітному порядку, і це болить переходити з сайту на сайт під час звичайних оновлень та обслуговування. Я спробував додати

asort($blogs);

на wp-admin / my-sites.php, але це теж не допомагає. І незалежно, я б краще це робив, використовуючи фільтр у function.php, а не змінюючи основний файл. Зробити питання ще складнішим є той факт, що список розділений на чотири стовпці, і хоча горизонтальне впорядкування за алфавітом було б величезним поліпшенням, вертикальне (за стовпцем) було б набагато, набагато краще.

Я деякий час шукав відповіді на це і прийшов порожній, тому будь-яка допомога буде вдячна. (Мій PHP досить базовий, тому прописання відповіді, безумовно, буде вдячна.)


Це НЕ рекомендується змінити основний крім WP-config.php WordPress файлів.
Понт Абрахамссон

@PontusAbrahamsson, про це він сказав у другому абзаці.
Synetech

Відповіді:


12

Легкий.

<?php
/*
Plugin Name: Sort My-Sites
Description: Sorts the My Sites listing on both the page and in the 3.3 admin bar dropdown
Author: Otto
*/

add_filter('get_blogs_of_user','sort_my_sites');
function sort_my_sites($blogs) {
        $f = create_function('$a,$b','return strcasecmp($a->blogname,$b->blogname);');
        uasort($blogs, $f);
        return $blogs;
}

Редагувати: Якщо ви хочете версію PHP 7:

add_filter('get_blogs_of_user', function( $blogs ) {
    uasort( $blogs, function( $a, $b ) { 
        return strcasecmp( $a->blogname, $b->blogname );
    });
    return $blogs;
});

1
Нічого собі, це ТІЛЬКИ тип рішення, на який я сподівався: чисте і красиве, і не змінює основні файли. Працює чудово. Однозначно не те, що я міг би придумати. Дякую Отто!
Сем

1
оновлення для PHP 7.2: функція sort_my_sites ($ blogs) {$ f = function ($ a, $ b) {return strcasecmp ($ a-> ім'я блогу, $ b-> ім'я блогу); }; uasort ($ блоги, $ f); повернути $ блоги; } add_filter ('get_blogs_of_user', 'sort_my_sites');
Кріс Чалмерс

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.