I have a basic question to beautiful working code I've found (paulund) for making a Custom Control by extending the 'WP_Customize_Control' Class. I am new to PHP, Programming and especially to OOP. So I wonder especially, what the first "condition" do, while the rest seems comprehensibly to me. I have a understanding problem with:

    if ( ! class_exists( 'WP_Customize_Control' ) )
    return NULL;

Read the php manual for "class_exists" and I read in a german blog, that the code above ensures, that we have no conflicts with other Plugins... .

I this is the idea of it, how does it work? Shouldn't the Class exist by Wordpress Core anyway? Sorry for my English. Many thanks in advance.

1 Answer 1


This is a terrible way to make sure you are in the right context. The normal way is to load your class only when it is really needed, not earlier.

A side effect is that the following code cannot be cached, because that line is evaluated on run time, not on compile time. The same applies to function_exists().

Summary: Don't do that.

  • Thank you so much. I think I have to dive deeper into OOP to find a better way to avoid conflicts. Might spl_autoload_register () will provide a better solution? But to be honest... . I will need a few weeks to built up the basic know-how in OOP. Meanwhile and once again many thanks. Commented Feb 21, 2017 at 14:05
  • 1
    @FriedrichSiever Yes, do use autoloading. Preferably Coposer or a simple alternative.
    – fuxia
    Commented Feb 21, 2017 at 15:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.