1

I'm experimenting with creating a function to write code into htaccess (I understand the security issues associated). I'm currently using the function insert_with_markers() as a starting point however its throwing a 'call to undefined function' error.

I am using it within a function that is only running whilst logged into the Admin Dashboard.

I understand that the function if found in the file: wp-admin/includes/misc.php but I made the assumption that this file is loaded whilst within the Admin Dashboard anyway, so I don't need to include it?

If I manually include the file, the function runs correctly.

My question is: does the wp-admin/includes/misc.php file not get loaded by default when logged in to the Dashboard? Or is it only loaded in certain cirumstances?

2

Looks like insert_with_markers() function becomes available during admin_init hook. So in order for your code to work, you should do the following:


function do_my_htaccess_stuff_371705() {
//function `insert_with_markers()` is working now
}

add_action('admin_init', 'do_my_htaccess_stuff_371705');
| improve this answer | |
  • 1
    Can confirm - this solved the issue for me. I redesigned to code to let the add_action trigger my function and it allowed me to remove the include. Thanks very much! – t2pe Jul 24 at 14:59
1

By looking at the source of the latest version, it shows that misc.php only gets included in one place at wp-admin/includes/admin.php. The include there is unconditional. That file in turn gets included seemingly unconditionally in wp-admin/admin.php, and this is required unconditionally as the first line in wp-admin/index.php.

So it appears that it should be the case that's always available in the admin dashboard. If it's not, I'd suggest looking in more detail at what happens in wp-admin/admin.php in case something is going on there which bails out early.

EDIT: Note that PHP gives you the require_once() command which means that it's safe to include the file using require_once more than once, so you don't lose or risk anything going wrong by putting a require_once to that file in your code.

| improve this answer | |
  • 1
    See above answer that worked for me but I appreciate the detail in your response, and I always overlook require_once function so that was a good reminder. Thank you! – t2pe Jul 24 at 15:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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