Это не работает, потому что есть вызов usort()
в строке 23 в includes/widgets.php
, который использует strnatcasecmp()
для сравнения.Не существует очевидного способа переопределить или изменить этот вызов.
Один из возможных обходных путей - сделать небольшой хакер, который удаляет ваш виджет из $wp_registered_widgets
, а затем повторно вставляет его с именем, начинающимся с пробела.тем самым поместив его в верхнюю часть порядка сортировки.Примечание: я не пробовал делать это, и могут быть другие вещи, которые ломаются при использовании этого подхода, но не так много других вариантов, кроме как взломать основной файл, который является Bad Thing®.
Ps: Так как сортировка принимает строковый аргумент, у меня есть одна неприятная мысль, связанная с поиском на лету и заменой в самом коде ядра ... нет, это будет связано с Flying Monkey Patching ™, что означает Flying Monkeysи ты знаешь, что случилось с Дороти.Лучше туда не ходить.