Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I'm trying to write a plugin with multi files. I'm sure I did it before without a problem, but now I have the problem in the subject.

In the main plugin file I have included a file name - ydp-includes.php. Inside of ydp-includes.php I have included all the files I wanted like this:

<?php
include(dirname( __FILE__ ) .'/1.php');
include(dirname( __FILE__ ) .'/2.php');
include(dirname( __FILE__ ) .'/3.php');
include(dirname( __FILE__ ) .'/4.php');
?>

but I'm getting:

Fatal error: Call to undefined function add_action().

The files are included, but for a reason I can't see at the moment, wordpress doesn't see them as one plugin package and each wordpress function inside ignored.

Is there another best practice way to develop multiple files wordpress plugin? What am I doing wrong?

share|improve this question

2 Answers 2

This happens only if you call a file per HTTP without loading WordPress. That is something you should never do, because the plugin URL might be another domains where cookies don’t work anymore.

share|improve this answer
    
hello toscho thanks your for your reply. can you explaion more about what you mean: "call a file per HTTP" –  largo Nov 12 '12 at 13:04
    
If you are using the URL for one plugin file WordPress will not be loaded, just that file. –  toscho Nov 12 '12 at 16:15

I generally have just one PHP file in the plugin folder, then a sub-folder within which all my required PHP files sit. I use the following code in the main file to automatically include all files found in the inc directory:

foreach ( glob( dirname( __FILE__ ) . '/inc/*.php' ) as $file ) {
    require $file;
}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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