What is the difference between wp_register_sidebar_widget and register_widget?

wp_register_sidebar_widget() is part of the old widgets API. Sidebar widgets used to be built procedurally … in a non-reusable fashion (i.e. you could only ever have one of each). register_widget() was introduced with the new Widgets API and takes an object/class as an input rather than actual widget parameters. WordPress can instantiate as many copies … Read more

How to move page template files like page-{slug}.php to a sub-directory?

How Page Templates are loaded: According to the default WordPress Template Hierarchy, a page request loads a template based on the priority and naming as stated below: Custom Page Template: if defined in the page editor. page-{slug}.php page-{url-encoded-slug}.php: only for multi-byte characters. page-{id}.php page.php singular.php index.php Among these, singular.php and index.php are not actually page … Read more

How to set permalink structure via functions.php

You can set the permalink structure by calling on the set_permalink_structure() method of the global $wp_rewrite object. add_action( ‘init’, function() { global $wp_rewrite; $wp_rewrite->set_permalink_structure( ‘/%year%/%monthnum%/%postname%/’ ); } ); Here’s a PHP < 5.3 version of the code in case you’re getting errors. function reset_permalinks() { global $wp_rewrite; $wp_rewrite->set_permalink_structure( ‘/%year%/%monthnum%/%postname%/’ ); } add_action( ‘init’, ‘reset_permalinks’ );

Adding a div to wrap widget content after the widget title

In addition to Toscho’s answer here’s what you need for a robust solution: // if no title then add widget content wrapper to before widget add_filter( ‘dynamic_sidebar_params’, ‘check_sidebar_params’ ); function check_sidebar_params( $params ) { global $wp_registered_widgets; $settings_getter = $wp_registered_widgets[ $params[0][‘widget_id’] ][‘callback’][0]; $settings = $settings_getter->get_settings(); $settings = $settings[ $params[1][‘number’] ]; if ( $params[0][ ‘after_widget’ ] == … Read more