Sarathlal N

Display all sites in a network as a drop down list – WordPress

When creating WordPress network sites, regularly I want to display all sites in that network as a drop down in front end.

We can use a simple code snippet that use wpdb class to get such a list.

<?php
global $wpdb;
$blogs = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->blogs WHERE spam = '0' AND deleted = '0' and archived = '0' and public='1'"));
if(!empty($blogs)){
 ?>
	 <select onChange="window.document.location.href=this.options[this.selectedIndex].value;" value="GO">
	 <?php
		 foreach($blogs as $blog){
		 $details = get_blog_details($blog->blog_id);
			 if($details != false){
				$addr = $details->siteurl;
				$name = $details->blogname;
					if(!(($blog->blog_id == 1)&&($show_main != 1))){ //This if statement that hide main site from list. So comment or uncomment this line with below closing tag
					?>
					<option value="<?php echo $addr; ?>"><?php echo $name;?></option>
					<?php
					} //End of if statement
			 }
		 }
	 ?>
	 </select>
 <?php
}
?> 

Looking for a skilled developer? I'm currently available for freelance, contract, or full-time remote opportunities! Let's create something amazing together. Send me a quick message, and I'll respond within 24 hours!

Recent Posts

  1. SQL From Basics to Mastery — A Complete, Hands-On Guide
  2. WordPress Beginner Interview Questions
  3. Mastering Traits in PHP - The Complete Guide for Code Reuse and Modularity
  4. Understanding the Singleton Pattern and Using Traits to Achieve Singleton in WordPress Plugin Development
  5. REST API Methods Explained with Best Practices for Building Clean and Secure APIs

Your Questions / Comments

If you found this article interesting, found errors, or just want to discuss about it, please get in touch.