Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Improved class concept
<?php
/*
Plugin Name: WP_Plugin class test
Description: A better test!
Author: Ryan McCue
Version: 1.1
Author URI: http://ryanmccue.info/
*/
class WP_Plugin {
public function __construct() {
$self = new ReflectionClass($this);
foreach ($self->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
$params = $method->getNumberOfParameters();
if (strpos($method->name, 'filter_') === 0) {
$name = substr($method->name, 7);
add_filter($name, array($this, $method->name), 10, $params);
}
elseif (strpos($method->name, 'action_') === 0) {
$name = substr($method->name, 7);
add_action($name, array($this, $method->name), 10, $params);
}
}
}
}
// Here's an example of a plugin that would benefit from the above
class Some_Plugin extends WP_Plugin {
public static function init()
{
new self;
}
// Will filter the_title
public function filter_the_title( $title ) {
return $title . '123';
}
// Will filter the_content
public function filter_the_content( $content ) {
return $content . ' Add more content.';
}
// Will run during wp_footer
public function action_wp_footer() {
echo "I'm in the footer!";
}
}
// set a predictable point for execution.
add_action( 'plugins_loaded', array ( 'Some_Plugin', 'init' ), 99 );
@bueltge

Priority on hooks please and then is fine ;)

@toscho
Owner

Done. :)

@bueltge

simple and useful

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.