DEV Community

loading...

Discussion on: Simplifying WordPress's functions.php with OOP

Collapse
zimaben profile image
Benny T

I really liked this post and played around with changing my construction process around it. Ultimately I didn't want to invest the time to properly figure out how to tackle filters or large $arg functions (I'm sure it's possible), but holy hell this option is elegant as hell declaring wp_ajax_ handlers. Just throw the name of the handler function in and you're set:

private function __construct()
{
$this->addAjaxHandler('feature_post' )
->addAjaxHandler('unfeature_post');

}

private function addAjaxHandler( $function_name ){

\add_action( 'wp_ajax_' . $function_name, function() use( $function_name){
self::$function_name();
} );
return $this;

}

Collapse
raspberrytyler profile image
Tyler Smith Author

I'm glad you got some value out of the post! I hadn't even considered using this for ajax, but I'll have to try it out at some point.

Collapse
zimaben profile image
Benny T

Yeah it works in this case since wp_ajax follows a standard naming convention with your function and PHP will natively try to execute a variable as a function if you put the () parens after, so declaring the function name pulls double duty here.