I have a page, index.php
, like this (simplified):
<img src="content/banner.png"/>
The image loads fine. But when I include a certain (WordPress) script, like so,
<img src="content/banner.png"/>
<?php
include('template-loader.php');
?>
the image no longer loads! I also notice the URL in the browser becomes index.php/
.
How is this possible? The image of course won't load because I'm using relative paths and it's looking for index.php/content/banner.jpg
. True, I can use absolute paths to fix this issue, but I'd like to know what could be happening and how the problem might be fixed in PHP.
I'm testing on a local wamp
installation and have disabled all mod_rewrite
s and such, to be sure it's not something external causing the problem.
D'oh. Minutes after posting, I found the culprit, right in the script:
/**
* Loads the correct template based on the visitor's url
* @package WordPress
*/
if ( defined('WP_USE_THEMES') && WP_USE_THEMES )
do_action('template_redirect');
It's doing some kind of a redirect; commenting this out makes everything work as expected.
I still don't really understand how this script can magically redirect to index.php/
as if it were a directory (and have the document actually load) but...
I will delete this question in the future if it doesn't seem to be helping anyone (based on views and votes).