ต้องการความช่วยเหลือในการเรียงลำดับ "เว็บไซต์ของฉัน" ตามลำดับตัวอักษร


9

ฉันมีไซต์มากกว่า 40 แห่งปรากฏในหน้า "ไซต์ของฉัน" พร้อมการวางแผนที่มากกว่า น่าเสียดายที่ WordPress ไม่เรียงลำดับตามตัวอักษรและทำให้การย้ายจากเว็บไซต์หนึ่งไปอีกไซต์หนึ่งเป็นเรื่องลำบากในระหว่างการอัพเดทและการบำรุงรักษาตามปกติ ฉันพยายามเพิ่ม

asort($blogs);

เพื่อ wp-admin / my-sites.php แต่นั่นก็ไม่ได้ช่วยอะไรเช่นกัน และไม่ว่าฉันจะทำสิ่งนี้โดยใช้ตัวกรองในฟังก์ชั่น. php แทนที่จะแก้ไขไฟล์แกน การทำให้ปัญหาซับซ้อนยิ่งขึ้นคือความจริงที่ว่ารายการแบ่งออกเป็นสี่คอลัมน์และในขณะที่การเรียงลำดับตัวอักษรแนวนอนจะเป็นการปรับปรุงที่ใหญ่มากแนวตั้ง (ตามคอลัมน์) จะดีขึ้นมาก

ฉันค้นหาคำตอบนี้มาระยะหนึ่งแล้วจะว่างเปล่าดังนั้นความช่วยเหลือใด ๆ ก็จะได้รับการชื่นชม (PHP ของฉันค่อนข้างธรรมดาดังนั้นการสะกดคำตอบจะได้รับการชื่นชมอย่างแน่นอน)


มันเป็นเรื่องที่ไม่แนะนำให้ไฟล์ WordPress การเปลี่ยนแปลงหลักอื่น ๆ กว่า WP-config.php
Pontus Abrahamsson

@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
ว้าวนั่นเป็นวิธีการแก้ปัญหาที่ฉันต้องการ: สะอาดและสวยงามและไม่แก้ไขไฟล์หลัก ทำงานได้อย่างสมบูรณ์แบบ แน่นอนว่าไม่ใช่สิ่งที่ฉันจะคิดได้ ขอบคุณมาก Otto!
Sam

1
อัปเดตสำหรับ PHP 7.2: ฟังก์ชัน sort_my_sites ($ บล็อก) {$ f = ฟังก์ชั่น ($ a, $ b) {return strcasecmp ($ a-> blogname, $ b-> blogname); }; uasort ($ บล็อก, $ f); ส่งคืนบล็อก $; } add_filter ('get_blogs_of_user', 'sort_my_sites');
Chris Chalmers

3

ปลั๊กอินนี้ทำงานเช่นกัน:

จัดลำดับไซต์ของฉันใหม่

สำหรับ WordPress Multisite จัดลำดับเมนูดร็อปดาวน์ไซต์ของฉันใหม่ในแถบผู้ดูแลระบบตามตัวอักษร มันทำให้บล็อกหลักอยู่ด้านบน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.