Sortieren nach Site / Blog-Spalte in Multisite

Ich benutze WordPress Multisite und habe ein Plugin erstellt, das Spalten mit einigen Daten hinzufügt. Mein Code basiert auf diesem WP Engineer-Artikel .

Die Schlüsselfunktion in WordPress Multisite ist manage_sites_custom_column . Und das Problem ist, dass ich die Spalte, die ich erstellt habe, sortieren kann.

Ich habe den Code in diesem Scribus Artikel versucht, aber er basiert auf manage_posts_custom_column für einzelne Sites.

Solutions Collecting From Web of "Sortieren nach Site / Blog-Spalte in Multisite"

Ich habe versucht, dieses Problem vorher zu lösen . Wenn wir uns einen zweiten Blick darauf casting, können wir die Sites-Liste mithilfe des query Hooks ändern.

Angenommen, unsere benutzerdefinierte Sortier-URL ist
http://example.com/wp-admin/network/sites.php?orderby=site_category

 add_action( 'plugins_loaded', function() { global $pagenow; if( is_super_admin() && 'sites.php' == $pagenow && isset( $_GET['orderby'] ) && 'site_category' == $_GET['orderby'] ) add_filter( 'query', 'b5f_filter_site_query' ); }); function b5f_filter_site_query( $query ) { global $wpdb; if( FALSE !== strpos( $query, "SELECT * FROM {$wpdb->blogs} WHERE site_id = '1' LIMIT 0, 20" ) ) $query = "SELECT * FROM {$wpdb->blogs} WHERE site_id = '1' ORDER BY mature DESC LIMIT 0, 20"; return $query; } 

Ja , ich spiele mit der mature Spalte. Wahrscheinlich könnte eine verfeinerte SQL-Abfrage erstellt werden, aber nicht meine Liga … Diese Spalte ist ein TINYINT(2) . WordPress erkennt 0 und 1 und hinterlässt uns 98 Optionen. In meinem Fall genug, um zu kategorisieren.

Wenn mature > 1 , wird die Site als solche in der site-info.php , aber nicht in der sites.php . Ich bin mir nicht wirklich sicher, wie sich das Älterwerden auf die Website-Ausgabe auswirkt.
Ein Workaround, um die mature Spalte zu nutzen, ist WordPress alles in Ordnung zu sagen, keine Sorge , außerhalb des sites.php Bildschirms:

 add_action( 'plugins_loaded', function() { global $pagenow; if( 'sites.php' != $pagenow ) add_filter( 'blog_details', 'b5f_hack_mature_queries' ); # Hide the Mature checkbox in site-info.php add_action( 'admin_footer', 'b5f_print_sites_footer' ); }); function b5f_hack_mature_queries( $details ) { $details->mature = 0; return $details; } function b5f_print_sites_footer() { if( 'site-info-network' != get_current_screen()->id ) return; echo < < jQuery(document).ready( function($) { $(".form-table").find("label:contains('Mature')").remove(); });  HTML; }