Add Admin JavaScript

Author:Scott Reilly
First released:2011-12-05
Last update:2015-02-21
Compatibility:WP 3.5 – 4.1.8
Download:[ zip ]

Interface for easily defining additional JavaScript (inline and/or by URL) to be added to all administration pages.

Extended Description

Ever want to introduce custom dynamic functionality to your WordPress admin pages and otherwise harness the power of JavaScript? Any modification you may want to do with JavaScript can be facilitated via this plugin.

Using this plugin you’ll easily be able to define additional JavaScript (inline and/or by URL) to be added to all administration pages. You can define JavaScript to appear inline in the admin head, admin footer (recommended), or in the admin footer within a jQuery jQuery(document).ready(function($)) {} section, or reference JavaScript files to be linked in the page header. The referenced JavaScript files will appear in the admin head first, listed in the order defined in the plugin’s settings. Then any inline admin head JavaScript is added to the admin head. All values can be filtered for advanced customization (see Filters section).

Links: Plugin Homepage | Plugin Directory Page | Author Homepage

Find out more at the plugin’s WordPress Plugin Repository page.


Click to see full-size image.

  1. add-admin-javascript screenshot 1

    A screenshot of the plugin’s admin settings page.


  1. Unzip inside the /wp-content/plugins/ directory for your site (or install via the built-in WordPress plugin installer)
  2. Activate the plugin through the ‘Plugins’ admin menu in WordPress
  3. Go to “Appearance” -> “Admin JavaScript” and add some JavaScript to be added into all admin pages.


The plugin exposes four filters for hooking. Typically, these customizations would be put into your active theme’s functions.php file, or used by another plugin.

c2c_add_admin_js_files (filter)

The ‘c2c_add_admin_js_files’ hook allows you to programmatically add to or
customize any referenced JavaScript files defined in the “Admin JavaScript Files” field.


  • $files (array): Array of JavaScript files


add_filter( 'c2c_add_admin_js_files', 'my_admin_js_files' );
function my_admin_js_files( $files ) {
    $files[] = '';
    return $files;

c2c_add_admin_js_head (filter)

The ‘c2c_add_admin_js_head’ hook allows you to programmatically add to or
customize any JavaScript to be put into the page head as defined in the
“Admin JavaScript (in head)” field.


  • $js (string): JavaScript


add_filter( 'c2c_add_admin_js_head', 'my_add_head_js' );
function my_add_head_js( $js ) {
    $js .= "alert('Hello');";
    return $js;

c2c_add_admin_js_footer (filter)

The ‘c2c_add_admin_js_footer’ hook allows you to programmatically add to or
customize any JavaScript to be put into the page head as defined in the
“Admin JavaScript (in footer)” field.


  • $js (string): JavaScript


add_filter( 'c2c_add_admin_js_footer', 'my_add_footer_js' );
function my_add_footer_js( $js ) {
    $js .= "alert('Hello');";
    return $js;

c2c_add_admin_js_jq (filter)

The ‘c2c_add_admin_js_jq’ hook allows you to filter the jQuery JavaScript to be output in the footer of admin pages.
The ‘c2c_add_admin_js_jq’ hook allows you to programmatically add to or
customize any jQuery JS to be put into the page footer as defined in the
“Admin jQuery JavaScript” field.


  • $js_jq (string): String of jQuery JavaScript


add_filter( 'c2c_add_admin_js_jq', 'my_add_jq' );
function my_add_jq( $js_jq ) {
    $js_jq .= "$('.hide_me').hide();";
    return $js_jq;

Frequently Asked Questions

Q. Can I add JavaScript I defined via a file, or one that is hosted elsewhere?
A. Yes, via the “Admin JavaScript Files” input field on the plugin’s settings page.

Q. Can I limit what admin pages the JavaScript gets output on?
A. No, not presently. The JavaScript is added to every admin page on the site.

However, you can preface your selectors with admin page specific class(es) on ‘body’ tag to ensure CSS only applies on certain admin pages. (e.g. jQuery('body.index-php h2').hide();).

Q. Can I limit what users the JavaScript applies to?
A. No, not presently. The JavaScript is added for any user that can enter the admin section of the site.

Q. Does this plugin include unit tests?
A. Yes.

Release Log

1.3.3 (2015-02-21)

  • Revert back to using dirname(__FILE__); DIR is only PHP 5.3+

1.3.2 (2015-02-16)

  • Update plugin framework to 039
  • Add to and improve unit tests
  • Explicitly declare class method activation() and uninstall() static
  • Use DIR instead of dirname(__FILE__)
  • Various inline code documentation improvements (spacing, punctuation)
  • Note compatibility through WP 4.1+
  • Update copyright date (2015)
  • Regenerate .pot

1.3.1 (2014-08-25)

  • Update plugin framework to 038
  • Minor plugin header reformatting
  • Minor code reformatting (spacing, bracing)
  • Change documentation links to to be https
  • Localize an additional string
  • Note compatibility through WP 4.0+
  • Regenerate .pot
  • Add plugin icon

1.3 (2014-01-03)

  • Fix enqueuing multiple JS files by generating unique handle for each
  • Fix enqueuing of local files when not prepended with forward slash
  • Add unit tests
  • Update plugin framework to 036
  • Improve URL path construction
  • Use explicit path for require_once()
  • Add reset() to reset object to its initial state
  • Remove __clone() and __wake() since they are part of framework
  • For options_page_description(), match method signature of parent class
  • Note compatibility through WP 3.8+
  • Drop compatibility with versions of WP older than 3.5
  • Update copyright date (2014)
  • Change donate link
  • Minor readme.txt tweaks (mostly spacing)
  • Add banner
  • Update screenshot


  • Move ‘Advanced Tips’ section from bottom of settings page into contextual help section
  • Add help_tabs_content() and contextual_help()
  • Prevent textareas from wrapping lines
  • Change input fields to be displayed as inline_textarea instead of textarea
  • Add instance() static method for returning/creating singleton instance
  • Made static variable ‘instance’ private
  • Add dummy __clone() and __wakeup()
  • Remove c2c_AddAdminJavaScript(); only PHP5 constructor is supported now
  • Update plugin framework to 035
  • Discontinue use of explicit pass-by-reference for objects
  • Add check to prevent execution of code if file is directly accessed
  • Regenerate .pot
  • Re-license as GPLv2 or later (from X11)
  • Add ‘License’ and ‘License URI’ header tags to readme.txt and plugin file
  • Minor documentation improvements
  • Note compatibility through WP 3.5+
  • Drop compatibility versions of WP older than 3.1
  • Update copyright date (2013)
  • Minor code reformatting (spacing)
  • Remove ending PHP close tag
  • Create repo’s assets directory
  • Move screenshot into repo’s assets directory


  • Fix typo in code example in Advanced Tips
  • Add addition help text for js_head to indicate use of js_foot is preferred
  • Update .pot
  • Update screenshot


  • Update plugin framework to 029
  • Save a static version of itself in class variable $instance
  • Discontinue use of global variable $c2c_add_admin_js to store instance
  • Explicitly declare all functions as public
  • Add __construct(), activation(), and uninstall()
  • Note compatibility through WP 3.3+
  • Drop compatibility with versions of WP older than 3.0
  • Expand most onscreen and documentation references from “JS” to “JavaScript”
  • Add .pot
  • Add screenshot
  • Add ‘Domain Path’ plugin header
  • Tweak description
  • Minor code formatting changes (spacing)
  • Update copyright date (2011)
  • Add plugin homepage and author links in description in readme.txt


  • Initial release (not publicly released)

Copyright & Disclaimer

Copyright © 2011-2015 by Scott Reilly (aka coffee2code)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Discussion / Support

Have any questions, comments, or suggestions? Please provide them via the plugin’s support forum. I’ll do my best to reply in a timely fashion and help as best I can.

Unfortunately, I cannot provide guaranteed support, nor do I provide support via any other means.

Was this plugin useful useful to you? Consider giving it a rating. If you’re inclined to give it a poor rating, please first post to the support forum to give me a chance to address or explain the situation.