1

I notice that in some plugins you can override functions by ...

  1. Creating an uploads folder
  2. Creating a folder with the plugin name
  3. Using the following code

    if (!function_exists('function_name')) {
        function function_name() {
    
        }
    }
    

Is this standard for all Wordpress plugins or only if they're written in a specific way?

2 Answers 2

1

If the plugin displays content via any function, the code:

if(!function_exists('function_name')) function_name();

... is used for safety.

If your plugin is disabled, and the if (!function_exists('function_name')) is missing, your theme will throw a fatal error.

2
  • This isn't actually correct. The OP is referring to wrapping the function definition in a if( ! function_exists() ) conditional, not the actual function call in the template. Jul 26, 2011 at 15:00
  • 1
    Yes, but his wording is not the best. The wrapping is done for theme safety only, and not for overriding WordPress functions.
    – Ciprian
    Jul 26, 2011 at 15:12
0

These are referred to as pluggable functions, and are intended to be able to be over-ridden, either by Plugins, Themes, or Child Themes.

It is only standard for functions that are intended to be over-ridden - and, generally speaking, the better practice is to add filter hooks to function outputs, rather than making functions pluggable.

Your Answer

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

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