How to Add jQuery Tabber Widget in WordPress

234

Have you seen a tabber area on popular sites that allows you to see popular, recent, and featured posts with just one click? This is called the jQuery tabber widget, and it allows you to save space on user screen by combining different widgets into one. In this article, we will show you how to add a jQuery Tabber Widget in WordPress.

A jQuery powered tabber widget in WordPress

Why You Should Add a jQuery Tabber Widget?

When running a WordPress website, you can easily add items to your sidebars using drag and drop widgets. As your site grow, you might feel that you don’t have enough space in the sidebar to show all the useful content. That’s exactly when a tabber comes in handy. It allows you to show different items in a same area. Users can click on each tab and see the content they’re most interested in. A lot of big name sites use it to show popular article today, this week, and this month. In this tutorial we will show you how to create a tabber widget. However, we are not showing you what to add in your tabs. You can add basically anything you like.

Note: this tutorial is for intermediate level users and will require HTML and CSS knowledge. For beginner level users please refer to this article instead.

Creating jQuery Tabber Widget in WordPress

Let’s get started. First thing you need to do is create a folder on your desktop and name it wpbeginner-tabber-widget. After that, you need to create three files inside this folder using a plain text editor like Notepad.

The first file we’re going to create is wpb-tabber-widget.php. It will contain HTML and PHP code to create tabs and a custom WordPress widget. The second file we will create is wpb-tabber-style.css, and it will contain CSS styling for the tabs container. The third and the last file we will create is wpb-tabber.js, which will contain the jQuery script for switching tabs and adding animation.

Let’s start with wpb-tabber-widget.php file. The purpose of this file is to create a plugin that registers a widget. If this is your first time creating a WordPress widget, then we recommend that you take a look at our how to create a custom WordPress widget guide or simply copy and paste this code in wpb-tabber-widget.php file:

  <?php  /* Plugin Name: WPBeginner jQuery Tabber Widget  Plugin URI:   Description: A simple jquery tabber widget.  Version: 1.0  Author: WPBeginner  Author URI:   License: GPL2  */    // creating a widget  class WPBTabberWidget extends WP_Widget {    function WPBTabberWidget() {  		$widget_ops = array(  		'classname' => 'WPBTabberWidget',  		'description' => 'Simple jQuery Tabber Widget'  );  $this->WP_Widget(  		'WPBTabberWidget',  		'WPBeginner Tabber Widget',  		$widget_ops  );  }  function widget($args, $instance) { // widget sidebar output    function wpb_tabber() {     // Now we enqueue our stylesheet and jQuery script    wp_register_style('wpb-tabber-style', plugins_url('wpb-tabber-style.css', __FILE__));  wp_register_script('wpb-tabber-widget-js', plugins_url('wpb-tabber.js', __FILE__), array('jquery'));  wp_enqueue_style('wpb-tabber-style');  wp_enqueue_script('wpb-tabber-widget-js');    // Creating tabs you will be adding you own code inside each tab  ?>    <ul class="tabs">  <li class="active"><a href="#tab1">Tab 1</a></li>  <li><a href="#tab2">Tab 2</a></li>  <li><a href="#tab3">Tab 3</a></li>  </ul>    <div class="tab_container">    <div id="tab1" class="tab_content">  <?php   // Enter code for tab 1 here.   ?>  </div>    <div id="tab2" class="tab_content" style="display:none;">  <?php   // Enter code for tab 2 here.   ?>  </div>    <div id="tab3" class="tab_content" style="display:none;">  <?php   // Enter code for tab 3 here.   ?>  </div>    </div>    <div class="tab-clear"></div>    <?php    }    extract($args, EXTR_SKIP);  // pre-widget code from theme  echo $before_widget;   $tabs = wpb_tabber();   // output tabs HTML  echo $tabs;   // post-widget code from theme  echo $after_widget;   }  }    // registering and loading widget  add_action(  'widgets_init',  create_function('','return register_widget("WPBTabberWidget");')  );  ?>

In the code above, we first created a plugin and then inside that plugin we created a widget. In the widget output section we added scripts and stylesheet and then we generated the HTML output for our tabs. Lastly we registered the widget. Remember, you need to add the content that you want to display on each tab.

Now that we have created the widget with PHP and HTML code needed for our tabs, the next step is to add jQuery to display them as tabs in the tab container. To do that you need to copy and paste this code in wp-tabber.js file.

  (function($)  {  $(".tab_content").hide();  $("ul.tabs li:first").addClass("active").show();  $(".tab_content:first").show();  $("ul.tabs li").click(function() {  $("ul.tabs li").removeClass("active");  $(this).addClass("active");  $(".tab_content").hide();  var activeTab = $(this).find("a").attr("href");  //$(activeTab).fadeIn();  if ($.browser.msie) {$(activeTab).show();}  else {$(activeTab).fadeIn();}  return false;  });  })(jQuery);

Now our widget is ready with jQuery, the last step is to add styling to the tabs. We have created a sample stylesheet that you can copy and paste in wpb-tabber-style.css file:

    ul.tabs {   position: relative;   z-index: 1000;   float: left;   border-left: 1px solid #C3D4EA;   }  ul.tabs li {  position: relative;   overflow: hidden;   height: 26px;   float: left;   margin: 0;   padding: 0;   line-height: 26px;   background-color: #99B2B7;  border: 1px solid #C3D4EA;   border-left: none;   }  ul.tabs li  a{   display: block;   padding: 0 10px;   outline: none;   text-decoration: none;  }  html ul.tabs li.active,   html ul.tabs li.active a:hover {   background-color: #D5DED9;   border-bottom: 1px solid #D5DED9;   }  .widget-area .widget .tabs a  {   color: #FFFFFF;   }  .tab_container {  position: relative;   top: -1px;   z-index: 999;   width: 100%;   float: left;   font-size: 11px;   background-color: #D5DED9;   border: 1px solid #C3D4EA;  }  .tab_content {   padding: 7px 11px 11px 11px;  line-height: 1.5;  }  .tab_content ul {   margin: 0;  padding: 0;   list-style: none;   }  .tab_content li {   margin: 3px 0;   }  .tab-clear {  clear:both;  }

That’s all. Now just upload wpbeginner-tabber-widget folder to your WordPress site’s /wp-content/plugins/ directory through FTP. Alternately, you can also add the folder to a zip archive and go to Plugins » Add New in your WordPress admin area. Click on the upload tab to install the plugin. Once the plugin is activated, go to Appearance » Widgets, drag and drop WPBeginner Tabber Widget to your sidebar and that’s it.

Drag and drop WPBeginner Tabber Widget into your Sidebar

We hope that this tutorial helped you create a jQuery tabber for your WordPress site. For questions and feedback you can leave a comment below or join us on Twitter or Google+.