I’m working on a project with WP, a bit like a plugin, but not quite one.
I’m encountering an issue, when trying to include a file that contains some custom SQL functions in a class, in a completely different file, I get redirected to http://example.com/folder1/file.php/wp-admin/install.php
Which states that I’ve already installed WP and I need to uninstall it before I can install it again.. But I’m not trying to install/re-install WP.
^ That sounds kinda complicated, let me give an example:
I have file1.php
and file2.php
. file1.php
contains many SQL functions that I wrote to access the DB which WP uses.
And file2.php
contains a class that includes file1.php
, so I can use some of the SQL functions in the class.
Now, I first tested it with calling some SQL functions (from file1.php
) in the class and came across this issue. After some debugging (removing lines, one by one), the issue was the line that includes file1.php
(the file with all the SQL functions in it)
So for some reason, everytime I include file1.php
in file2.php
I get redirected to:
http://example.com/folder1/file2.php/wp-admin/install.php
Any ideas why this is happening and how I can fix it?
Forgot to mention something:
file1.php
(with all the SQL functions) does include wp-config.php
to get the DB info, which could be related to this issue, right?
Dollars to doughnuts, this is your problem. You should never, ever, ever need to load
wp-config.php
directly.Are you trying to access WordPress functions from outside WordPress?
Edit
To access WordPress functions from outside the normal WordPress environment, you want to include
wp-load.php
, notwp-config.php
.Basic example:
Edit 2
In this case, you don’t need to load WordPress. You’re simply accessing the database. Just omit the line entirely.
The bare essentials
If you’re about loading only the parts of WP that access the DB, then there’s a constant there for you:
Simply combine that with a custom query var, so you can turn it on/off from your
wp-config.php
file:This allows you to append
?shortinit=true
to your URl to run WP without all that shine and glitter. If you need some other API functions, simply extend that wrapper in your config file and include the responsible files too.But you’ll have to set the globals
$wp, $wp_query, $wp_the_query
yourself. That isn’t too hard if you take a look an where and how core does this.Routing
I also wrote about how you can add non WP rewrite rules in this answer.