I need to customize the output of the shortcode of plugin A by using a function of plugin B. So I alter the shortcode function of plugin A by inserting a condition to check the value of the function of plugin B but I need to include the php file that supports this function. I tried all require_once, require and include but I get the following errors:

When using require_once('../../pluginname/pluginfunctions.php');

Error Warning: require_once(): open_basedir restriction in effect. File(../../magicmembers/core/libs/functions/mgm_misc_functions.php) is not within the allowed path(s)

When using include(WP_PLUGIN_URL . '/pluginname/pluginfunctions.php');

Error Warning: include(): URL file-access is disabled in the server configuration

What is the correct way?


3 Answers 3


The first error message means that there is restrictions in place on where you can include files from, set by the server. You could try with

require_once ABSPATH . '/wp-content/plugins/pluginname/pluginfunctions.php';

but I'm not sure if it would work.

With the second include you're trying to include an URL which is disabled by the server for security reasons.

However, why do you need to include the function of plugin B? If plugin B is present that means it's probably activated, which in turn means you can use the function directly from plugin A without needing to include the file specifically.

  • Hey, thanks for your reply! This might be the only method that I haven't tested and it works! Don't know really why the function wasn't working without including the file that supports it. Is it possible that plugin B isn't loaded yet when plugin A requires its file? Anyway thanks for your help!
    – vadims
    Commented Aug 22, 2012 at 10:29
  • You should use require_once WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'plugin-name' etc since the wp-content directory can be renamed. Commented Jul 24, 2020 at 12:29

The right function to use is: plugin_dir_path();


include_once plugin_dir_path( __FILE__ ).'plugin-functions.php';

If you're feeling lazy you could also do

require_once( ABSPATH . PLUGINDIR .'/pluginname/pluginfunctions.php' );

This helps if you like to keep your code lines short but isn't much different from pbd's answer.

  • Please … use the proper function: plugin_dir_path() instead of hard coding on constants that aren't meant to be used by themes and plugins.
    – kaiser
    Commented Jun 8, 2016 at 20:36

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