Title: Lightweight JS Snippet
Author: Jonas Hjalmarsson
Published: <strong>9 сар 9, 2022</strong>
Last modified: 5 сар 4, 2026

---

Search plugins

![](https://ps.w.org/lightweight-js-snippet/assets/banner-772x250.png?rev=3521626)

![](https://ps.w.org/lightweight-js-snippet/assets/icon-256x256.png?rev=3521626)

# Lightweight JS Snippet

 By [Jonas Hjalmarsson](https://profiles.wordpress.org/jonashjalmarsson/)

[Download](https://downloads.wordpress.org/plugin/lightweight-js-snippet.1.4.1.zip)

 * [Details](https://mn.wordpress.org/plugins/lightweight-js-snippet/#description)
 * [Reviews](https://mn.wordpress.org/plugins/lightweight-js-snippet/#reviews)
 *  [Installation](https://mn.wordpress.org/plugins/lightweight-js-snippet/#installation)
 * [Development](https://mn.wordpress.org/plugins/lightweight-js-snippet/#developers)

 [Support](https://wordpress.org/support/plugin/lightweight-js-snippet/)

## Description

A minimal way to inject a single inline JavaScript snippet into the `<head>` of 
one or more specific posts, pages or products. You give it a comma-separated list
of post IDs and the JS body — that is the entire surface area.

The point is the absence of features. There is no per-post UI, no script library,
no CDN selector, no “fire on event” toggle. If all you need is to drop a tracking
pixel or a tiny script on three specific pages, you do not want a 2 MB plugin that
wants to manage your whole site.

Set it up under **Settings  Lightweight JS snippet**. The page provides a textarea
for the JS (no `<script>` tags — those are added for you) and a comma-separated 
list of post IDs to load it on.

## Screenshots

 * [[
 * Settings page with code editor and post-ID list.

## Installation

 1. Upload `/lightweight-js-snippet/` to the `/wp-content/plugins/` directory.
 2. Activate the plugin through the Plugins menu in WordPress.
 3. Go to **Settings  Lightweight JS snippet** and paste in your JS plus the post IDs.

## FAQ

### Where does the script run?

It is printed inline in the `<head>` of the listed posts/pages, only.

### Can I add “ tags?

No — they are added for you. Only paste the JS body.

### Does it support more than one page?

Yes. Use a comma-separated list of post IDs. Search for the post name in the settings
page to find the ID automatically.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Lightweight JS Snippet” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Jonas Hjalmarsson ](https://profiles.wordpress.org/jonashjalmarsson/)

[Translate “Lightweight JS Snippet” into your language.](https://translate.wordpress.org/projects/wp-plugins/lightweight-js-snippet)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/lightweight-js-snippet/),
check out the [SVN repository](https://plugins.svn.wordpress.org/lightweight-js-snippet/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/lightweight-js-snippet/)
by [RSS](https://plugins.trac.wordpress.org/log/lightweight-js-snippet/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.4.1

 * Fix empty `<script id="jhljs-script">` tag rendered on every page when no snippet
   was configured. Logic error (`||` where `&&` was meant) plus no early-return 
   on empty options.
 * Fix Settings link on the Plugins screen — previous filter targeted the wrong 
   plugin basename, and the URL pointed at a non-existent menu slug. Both corrected.

#### 1.4

 * Settings page now lets you pick target posts/pages by typing their title — the“
   comma-separated post IDs” textbox is replaced with a chip-style picker. Two small
   REST endpoints (`jhljs/v1/posts`, `jhljs/v1/search`) gated to `manage_options`
   power the lookup and search.

#### 1.3

 * Sanitize the post-id list and the JS snippet on save via `register_setting()`
   callbacks (digits/commas/whitespace for the IDs, `wp_kses` `'data'` for the script—
   same filter that was already applied on output).
 * Escape every translated string in the settings UI (`_e()`/`__()`  `esc_html_e()`/`
   esc_html__()`) and use `esc_textarea()` for the snippet field.
 * Add the missing `License`, `License URI` and `Text Domain` headers, fix the text-
   domain mismatches, and add an explicit version to `wp_enqueue_script()`.
 * Bumped minimum PHP to 7.4. Tested up to WordPress 6.9.

#### 1.2

 * Bugfix when escaping script.

#### 1.1

 * Code editor added.
 * Support for multiple ids.
 * Securing plugin.

#### 1.0

 * Initial release.

## Meta

 *  Version **1.4.1**
 *  Last updated **3 өдөр ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/lightweight-js-snippet/)
 * Tags
 * [head](https://mn.wordpress.org/plugins/tags/head/)[inline](https://mn.wordpress.org/plugins/tags/inline/)
   [javascript](https://mn.wordpress.org/plugins/tags/javascript/)[post](https://mn.wordpress.org/plugins/tags/post/)
   [snippet](https://mn.wordpress.org/plugins/tags/snippet/)
 *  [Advanced View](https://mn.wordpress.org/plugins/lightweight-js-snippet/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/lightweight-js-snippet/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/lightweight-js-snippet/reviews/)

## Contributors

 *   [ Jonas Hjalmarsson ](https://profiles.wordpress.org/jonashjalmarsson/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/lightweight-js-snippet/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://jonashjalmarsson.se/help-me-out/)