Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Home

Cristi Burcă edited this page · 31 revisions

scbFramework is a collection of classes and functions that speed up WordPress plugin and theme development.

For an example plugin, see https://github.com/scribu/wp-scb-framework-example

Classes

Loading

There are two "official" ways to load the scbFramework files:

Loading from a plugin

  1. Move the scbFramework folder to wp-content/plugins/my-plugin/scb.

Then, just require the load.php file:

<?php
// Plugin Name: My plugin

require dirname( __FILE__ ) . '/scb/load.php';

function my_plugin_init() {
  $option = new scbOptions( 'my_plugin' );  // OK

  require_once dirname(__FILE__) . '/plugin-functions.php'; // using require() can cause activation errors
}

scb_init( 'my_plugin_init' );

Instantiating a class before the my_plugin_init() function runs will result in a "class does not exist" fatal error.

Instantiating a class later than the 'plugins_loaded' hook might result in malfunctions, since scb classes make various add_action() calls themselves.

Loading from mu-plugins

This method is recommended when you plan to use scbFramework on a site that you control.

  1. Move the scbFramework folder to wp-content/mu-plugins/scb (create the directories as needed).
  2. Create a wp-content/mu-plugins/scb-load.php file with following contents:
<?php
define( 'SCB_LOAD_MU', dirname( __FILE__ ) . '/scb/' );

foreach ( array(
        'scbUtil', 'scbOptions', 'scbForms', 'scbTable',
    'scbWidget', 'scbAdminPage', 'scbBoxesPage', 'scbPostMetabox',
    'scbCron', 'scbHooks',
) as $className ) {
    include SCB_LOAD_MU . substr( $className, 3 ) . '.php';
}

function scb_init( $callback = '' ) {
    if ( $callback )
        call_user_func( $callback );
}

Now, all the classes are available to all plugins and themes. For example, in your theme's functions.php file you can write:

<?php

$my_theme_options = new scbOptions( 'my_theme_options' );

There's also an example plugin on WordPress.org.

Something went wrong with that request. Please try again.