Good catch on the locate_template() as the safe fallback!<div><br></div><div>Chip<br><br><div class="gmail_quote">On Wed, Aug 24, 2011 at 2:07 PM, Otto <span dir="ltr">&lt;<a href="mailto:otto@ottodestruct.com">otto@ottodestruct.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">If your code is in a plugin file, the right way to include other files<br>
is either relative to yourself:<br>
<br>
include &#39;whatever.php&#39;;<br>
<br>
Or to use the full path with plugin_dir_path if you need the full path<br>
for some reason:<br>
<br>
include plugin_dir_path(__FILE__).&#39;whatever.php&#39;;<br>
<br>
<br>
In a theme, if you&#39;re including a file of functions that is in the<br>
theme directory, then the correct way is as Chip said:<br>
<br>
include_once( get_template_directory() . &#39;/whatever.php&#39; );<br>
<br>
However, if this is a template file or one that can be overridden by a<br>
child, then the correct way is actually to use locate_template:<br>
<br>
locate_template( &#39;whatever.php&#39;, true );<br>
<br>
Using locate_template is safe. Using the get_stylesheet_directory for<br>
an include is not safe, because the file may not be overridden by the<br>
child. The get_stylesheet_directory function will always return the<br>
path of the child theme if it is a child theme. The locate_template<br>
function checks the child theme for the file, and then checks the<br>
parent if the file isn&#39;t in the child. The &quot;true&quot; makes it go ahead<br>
and include the resulting file that it finds.<br>
<font color="#888888"><br>
-Otto<br>
</font><div><div></div><div class="h5"><br>
<br>
<br>
On Wed, Aug 24, 2011 at 1:51 PM, Chip Bennett &lt;<a href="mailto:chip@chipbennett.net">chip@chipbennett.net</a>&gt; wrote:<br>
&gt; For including functional (as opposed to template) files in a Theme, you<br>
&gt; should use something like the following in functions.php:<br>
&gt;<br>
&gt; include_once( get_template_directory() . &#39;/relative/path/to/file.php&#39; );<br>
&gt;<br>
&gt; Unless the file is intended to be over-ridden in a Child Theme, in which<br>
&gt; case you would use:<br>
&gt;<br>
&gt; include_once( get_stylesheet_directory() . &#39;/relative/path/to/file.php&#39; );<br>
&gt;<br>
&gt; I&#39;m sure Plugins would be similar, but that&#39;s a question outside the scope<br>
&gt; of Theme-Reviewers. :)<br>
&gt; Chip<br>
&gt;<br>
&gt; On Wed, Aug 24, 2011 at 1:39 PM, Ryan Frankel &lt;<a href="mailto:ryan.frankel@gmail.com">ryan.frankel@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; All,<br>
&gt;&gt;<br>
&gt;&gt;  I have a dumb question that I am sure has been covered a million times<br>
&gt;&gt; but I am not sure what the best way to include PHP files into my<br>
&gt;&gt; plugin/theme.   What I currently have is something like below which can&#39;t<br>
&gt;&gt; possibly be the right way to do it.<br>
&gt;&gt;<br>
&gt;&gt;                        include_once(WP_PLUGIN_DIR .<br>
&gt;&gt; &#39;/swamped-event-calendar/php/functions_db.php&#39;);<br>
&gt;&gt;                        include_once(WP_PLUGIN_DIR .<br>
&gt;&gt; &#39;/swamped-event-calendar/php/functions_calendar.php&#39;);<br>
&gt;&gt;                        include_once(WP_PLUGIN_DIR .<br>
&gt;&gt; &#39;/swamped-event-calendar/php/functions_list.php&#39;);<br>
&gt;&gt;<br>
&gt;&gt; Any tips on this would be greatly appreciated.<br>
&gt;&gt;<br>
&gt;&gt; Ryan<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; theme-reviewers mailing list<br>
&gt;&gt; <a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
&gt;&gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; theme-reviewers mailing list<br>
&gt; <a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
&gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
theme-reviewers mailing list<br>
<a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
<a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
</div></div></blockquote></div><br></div>