I want my plugin to register a script only in a certain page.
For example, inside my plugin file I want to write something like this:
if (is_page()) {
$pageid_current = get_the_ID();
$page_slug = get_post($pageid_current)->post_name;
if ($page_slug == 'articles'){
wp_register_script('myscript', '/someurl/main.js');
}
}
But I get the error:
is_page was called incorrectly. Conditional query tags do not work before the query is run. Before then, they always return false. Please see Debugging in WordPress for more information. (This message was added in version 3.1.)
How can I, inside of a plugin, register a script in a certain page?
You could use
is_page()
after template redirect so you need to add in the hook like this :is_page()
only work within template files.And to use it within plugin files, you need to use it with the combination of
template_redirect
action hook.So following snippet would work:
You must register your script as if you want it to work everywhere. You can de-register it after the job is done, like this: