Adding <script> to WordPress in <head> element

trichnosis picture trichnosis · May 1, 2011 · Viewed 128.4k times · Source

I'm trying to insert this code:

 <script type="text/javascript">
    some Javascript codes comes here
</script>

to WordPress' <head></head> section in front end and in admin panel

E.g., Joomla! 1.6 has an API that allows this:

        $doc =& JFactory::getDocument();
        $doc->addCustomTag($headTag);

I need to add different things for different pages. For example:

Page 1 I need to add

<link rel="alternate" type="application/rss+xml" title="feed title" href="feed url" />

For a few pages

Page 2 I need to add

<script type=\"text/javascript\" src=\"" . LIVE_SITE .
 "/wp-content/plugins/jobs/lknlibrary/js/ajax.js\"></script>
    <script type=\"text/javascript\">

    var ajax = new sack();
    var currentClientID=false;
    function getClientData()
    {
        var clientId = document.getElementById('db_country_id').value.replace(/[^0-9]/g,'');
        ajax.requestFile = '" .BASE_PATH . "/wp-content/plugins/jobs/com_jobs_admin/tasks/get_location_data.php?task=get_location_data&name=db_parent_id&getClientId='+clientId;    // Specifying which file to get
        ajax.onCompletion = showClientData; // Specify function that will be executed after file has been found
        ajax.runAJAX();        // Execute AJAX function
    }

    function showClientData()
    {
        clearJS = ajax.response;
        var strTagStrippedText = clearJS.replace(/(<\s*\/?\s*)div(\s*([^>]*)?\s*>)/gi ,'');
        document.getElementById('locationsDiv').innerHTML=strTagStrippedText ;
    }

    function initFormEvents()
    {
        if (document.getElementById('db_country_id')){
            document.getElementById('db_country_id').onchange = getClientData;
            document.getElementById('db_country_id').focus();
        }
    }

    window.onload = initFormEvents;
</script>

for a few pages

Page 3 I need to add

 <link rel="stylesheet" type="text/css" href="/wordpress/wp-content/plugins/jobs/lknlibrary/js/tabs/tab.webfx.css" />

for a few pages

I have 70+ pages in admin panel like those above.

Trying to manage the header of the WordPress with the example is a bit difficult.

Answer

ggutenberg picture ggutenberg · May 1, 2011

In your theme's functions.php:

function my_custom_js() {
    echo '<script type="text/javascript" src="myscript.js"></script>';
}
// Add hook for admin <head></head>
add_action( 'admin_head', 'my_custom_js' );
// Add hook for front-end <head></head>
add_action( 'wp_head', 'my_custom_js' );