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.
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; }