October 23, 2007

I have been several versions of Wordpress behind for a little while and, with this blog, have just caught up. My verdict? Widgets are pretty cool. Having said that it seems clear that the creators of widgets have missed a trick. Why stop with the sidebar?

Widgets give you control over the layout and contents of your sidebar, but there is no reason why you can’t use them to control other parts of your site. For example, in just ten minutes I was able to convert my home page to give me control over most of the layout. Now I am going to explain how.

Register a second sidebar

In the functions.php file, in my theme folder, I have now registered two sidebars. One is controlling my footer, and the other the content of my home page;

[php]
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'name' => 'footer',
'before_widget' => '

',
'after_widget' => '

',
'before_title' => '

',
'after_title' => '

',
));
register_sidebar(array(
'name' => 'home page contents',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
));

}

I’ve given then nice names so I recognise them in the admin console.

Create and register the home page content widget

Again in functions.php, I have produced a function to output the standard contents of the home page loop without any change. The example has a placeholder for simplicity:

[php]
function widget_home_page_content(){

?>

*** Loop Contents ****


}

I have then registered this function as a new widget

[php]
register_sidebar_widget('Home Page Content',widget_home_page_content);

Pretty simple so far right?

Convert your index to a sidebar

I have replaced the Wordpress loop in my index file, with a call to the second sidebar. My entire index file now looks like this:

[php]


I can now start to produce and use widgets to place content above and below the contents of my home page, without messing with the theme. I could even go further and break the loop into parts, giving even more control over the precise way posts are displayed, or make a single page theme, using widgets to control the layout.

I'm just wondering how far it is possible go using only widgets.



Wordpress title showing space?
no comment on page 1371

Wordpress fun?
one comment on page 1376

Live blogging plugin?
4 comments on page 1258

Wordpress 3 admin speed up?
4 comments on page 1321

Framework photoshop?
3 comments on page 296

Fun wp plugins?
one comment on page 1376

Habari vs wordpress?
12 comments on page 440

Wp tags vs categories?
12 comments on page 7

Wordpress rss seo?
one comment on page 1361

Photo albums html5?
6 comments on page 1305

Wordpress chat?
no comment on page 1308

Wordpress exif data?
12 comments on page 230

Css sidear tab?
2 comments on page 336

Wordpress theme html5 blueprint?
6 comments on page 1305

Wordpress shortcode in plugin?
no comment on page 236

Html 50 photo album?
6 comments on page 1305

Get the post attachement?
24 comments on page 1065

Wordpress plugin development 30?
one comment on page 1373

Wordpress plugin development 30?
one comment on page 1373

Disqus formatting?
7 comments on page 1175

Html5 photoalbum?
6 comments on page 1305

Html5 photoalbum?
6 comments on page 1305

Wordpress fun?
one comment on page 1376

Fun wordpress plugins?
one comment on page 1376

Url shortener ideas?
4 comments on page 1190

Url shortener ideas?
4 comments on page 1190

Html 5 photo gallery?
6 comments on page 1305

Multiple post navigation?
no comment on page 1147

Html5 photo galleries?
6 comments on page 1305

Adding images to a wordpress 3 post?
24 comments on page 1065

Html5 photo gallery code?
6 comments on page 1305

Wordpress multiple blog master?
one comment on page 1376

Wordpress 3 tableprefix?
one comment on page 1376

Wordpress 3 tableprefix?
2 comments on page 1374

Using wordpress as a framework?
2 comments on page 335

Single post image size?
24 comments on page 1065

Get featured image src wordpress?
24 comments on page 1065

Disqus wordpress mu?
7 comments on page 1175

Image gallery html 5?
6 comments on page 1305

Wordpress theimage?
24 comments on page 1065

Wpgetattachmentimagesrc size?
24 comments on page 1065
  every 1742s, 1s ago, in 0.03s.
 __
(__)
   `
 cakipin

thanks, it very good scrib

 __
(__)
   `
 Andrew Rickmann

Mak, I don't know the answer I'm afraid. It seems more likely that there is something up with the widget itself.

 __
(__)
   `
 mak

hi please help. i have a theme with 3 columns ie: main page 2 sidebars side by side.

i have the cats, links in one and register and tags in the other.

But when i install a tweet widget the tweet widget is shown in my3 sidebar but everything else just disappears.

i wanted the widget to show under the rest of the items

please help

 __
(__)
   `
 deshock.com » Blog Archive » We Need To Kill The Sidebar

[...] Developers: Check out Doing more with Widgets: Home Page Layout and Doing more with widgets: Changing Layouts for some fun tutorials on using WordPress [...]

 __
(__)
   `
 Andrew Rickmann

CarpetGuy,

You could do it as a plugin but this technique relies on changing the theme itself so if you changed the theme you are likely to lose most of it anyway.

Upgrading WordPress shouldn’t have an effect on this technique though as the only changes are to the theme files.

 __
(__)
   `
 CarpetGuy

I have one question, what happens when you upgrade? The way that I understand it, your additions, not done as a plug-in, will get over written when you upgrade. Might it be better to create a plugin instead of just changing code?

 __
(__)
   `
 wp-fun » Blog Archive » Doing more with widgets: Changing Layouts

[...] few weeks ago I showed how the home page contents could be moved into a widget to allow additional content to be added above and below it. That’s an interesting technique [...]

 __
(__)
   `
 Andrew Rickmann

Christopher, it is possible to install widgets as part of the functions.php file that sites in the template itself, so other than installing the template there isn’t really too much more you need to do.

 __
(__)
   `
 Christoph Voigt

I guess you could go pretty far with creating a theme that’s completely made out of widgets. However, the gain in flexibility comes with the price of increased administration.
If I’m not mistaken every widget has to be installed as a plugin. Really makeing use of a widget-based theme could easily create a dozen of widgets which will sooner or later clutter the plugins-page. Wouldn’t it be great if you could have a sort-of-wysiwyg editor for managing the entire theme?


0.01s