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 am writing a plugin that requires a large chunk of html. Now the way how it is set up now works.

return <<<EOT <html> EOT;

But I want to split the file into different php files that i can include. Now I tried this, but it does not work:

ob_start();
include(plugin_dir_url( __FILE__ ).'file.php');
return ob_get_clean();

Any know how this could be done?

=====================
EDIT

Ok thanks Chris Carson to I have found the small error, I changed the code to:

ob_start();
include(plugin_dir_path( __FILE__ ).'/file.php');
return ob_get_clean();

This is working ok now, except for one small problem.

In the previous code I used something like this:

$variable = 'Hello!';

return <<<EOT
    <span>{$variable}</span>
EOT;

This would have made the following in html:

<span>Hello!</span>

But now this:

$variable = 'Hello!';

ob_start();
include(plugin_dir_path( __FILE__ ).'/file.php');
return ob_get_clean();

This just prints

<span>{$variable}</span>

Any way to get the code working with variables.

share|improve this question

1 Answer 1

up vote 2 down vote accepted

When including files you don't want the URL, but the filesystem path instead. So...

include(dirname(__FILE__) . "/path/to/myfile.php");

Remember to put the first forward slash in /path/to/myfile.php, since dirname doesn't include the trailing slash.

share|improve this answer
    
AH! yeah of course. Been doing PHP way to long to make such a rookie mistake. Ok but is the ob_start(); method the best way to get the content, or does wordpress have a native function to do this. –  Saif Bechan Aug 21 '11 at 15:18
1  
I use ob_start, ob_get_clean -- I don't think there's a WP function for this. –  Chris Carson Aug 21 '11 at 18:15

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.