Going into the header.php file and reversing the order of the following lines made the dropdowns work on my sites, so I guess that's good enough for now. It still breaks my Featured Content Gallery plugin, but I'll figure that out later.
Reverse these:
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/includes/js/jquery-1.3.2.min.js"></script>
<?php wp_head(); ?>
So that the wp_head code comes first.
EDIT
The proper place to enqueue scripts is in functions.php, rather than directly in the document head.
For example:
function my-theme_enqueue_scripts() {
// only on the front end; don't mess with Admin scripts
if ( ! is_admin() ) {
// Only enqueue the core-bundled jQuery script
wp_enqueue_script( 'jquery' );
}
}
// Enqueue at proper hook
add_action( 'wp_enqueue_scripts', 'my-theme_enqueue_scripts' );
Notes:
- Omit the hard-coded link to jquery-1.3.2.min.js entirely.
- You don't want to enqueue both version 1.6.1 (which is bundled with WordPress) and version 1.3.2 (which is bundled with the Theme). Just use the core-bundled version.
If the Theme is adding any other scripts (such as e.g. SuperFish), these should be enqueued properly, as well. Non-core-bundled scripts simply have to be registered before they can be enqueued. To modify our previous function:
function my-theme_enqueue_scripts() {
// only on the front end; don't mess with Admin scripts
if ( ! is_admin() ) {
// Only enqueue the core-bundled jQuery script
wp_enqueue_script( 'jquery' );
// Register our superfish script, dependent upon jquery
wp_register_script( 'superfish', get_template_directory_uri() . '/includes/js/superfish.js', 'jquery' );
// Enqueue superfish script
wp_enqueue_script( 'superfish' );
}
}
// Enqueue at proper hook
add_action( 'wp_enqueue_scripts', 'my-theme_enqueue_scripts' );
This will force WordPress to enqueue SuperFish after jQuery is enqueued.
Repeat for all hard-coded script links in the document head.