Reputation: 3280
WordPress has a PHP function which allows to inject inline JavaScript to the page: https://developer.wordpress.org/reference/functions/wp_add_inline_script/
Is there a way to mark the $data
parameter to tell the IDE that it is a string which contains JavaScript code and then syntax highlight it?
wp_add_inline_script( 'xyz', 'new xyz();' );
/**
* Adds extra code to a registered script.
*
* @param string $handle Name of the script to add the inline script to.
* @param string $data String containing the javascript to be added.
* @param string $position Optional. Whether to add the inline script before the handle
* or after. Default 'after'.
* @return bool True on success, false on failure.
*/
function wp_add_inline_script( $handle, $data, $position = 'after' ) {
_wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
if ( false !== stripos( $data, '</script>' ) ) {
_doing_it_wrong( __FUNCTION__, sprintf(
/* translators: 1: <script>, 2: wp_add_inline_script() */
__( 'Do not pass %1$s tags to %2$s.' ),
'<code><script></code>',
'<code>wp_add_inline_script()</code>'
), '4.5.0' );
$data = trim( preg_replace( '#<script[^>]*>(.*)</script>#is', '$1', $data ) );
}
return wp_scripts()->add_inline_script( $handle, $data, $position );
}
Upvotes: 1
Views: 504
Reputation: 14927
Refer to the Using Language Injections documentation page.
Basically, there are three ways to do this:
Alt+Enter
(or click the lightbulb), select Inject language or reference
then pick JS.Define a variable and add // language=JavaScript
on top of it, then pass it to the method:
// language=JavaScript
$data = 'document.getElementbyId("selector")';
wp_add_inline_script('handle', $data, 'position');
Probably the most appropriate solution in your case, use /* language=JavaScript */
before passing your argument:
wp_add_inline_script('handle', /* language=JavaScript */ 'document.getElementbyId("selector")', 'position');
Upvotes: 1