Add a plugin like
Kint Debugger +
Debug Bar and add the following code to your
When you check the Debug Bar you should see the backtrace which will tell you which order functions were fired in. Loading 8 times is quite high for a single request.
There is also a backtrace function you can use that is less detailed if you don't want to go the plugin route -
echo "<!----- BACKTRACE / START ----->";
print_r ( wp_debug_backtrace_summary() );
echo "<!----- BACKTRACE / END ----->";
It is a bit odd to just have a random
wp_insert_post in your
functions.php so perhaps wrapping your logic in a hook like
init could help in the mean time.
There is also a possibility this is not just a single request.
heartbeats will ping the backend if you're in the admin section and It's possible
wp-cron can trigger it to load as well (but I'm not sure).
To double check it all, enable
WP_DEBUG_LOG and log the events.