I need a conditional which exits if the context is not a front-end view including AJAX requests. I have this at the moment:
if (is_admin() && !DOING_AJAX)
return;
The DOING_AJAX
bit is required since is_admin()
returns true
for ajax requests. However I believe DOING_AJAX
will be true
for ALL ajax requests including those on the backend. Thus it doesn't really add anything here.
How can I fork the two conditions? Can front-end/back-end ajax requests be distinguished?
thanks!
Clarification
Thanks for the insights but to clarify, in this instance, the hook itself is NOT an ajax action. It's a filter hook into get_the_terms
which needs to operate on any front-end request including any arbitrary theme or plugin ajax code. It also needs to bypass processing for the back-end hence the need for the forking condition. The problem is that ajax requests always return true for is_admin()
In case you are curious it's a plugin which hides "secret" or "hidden" tags on the front-end, while still allowing their taxonomy pages to exist. The "hiding" needs to be bypassed on the backend for obvious reasons.
Thanks for the help. Sorry for the initial confusion!