可能有一个非常简单的解决方案,但我面临着解决这个问题的问题。这些都是新的。
我从我的主题函数php文件中排队jquery和其他脚本。以下是我的代码
function mediaplus_scripts() {
if (!is_admin()) {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js');
wp_enqueue_script( 'jquery' );
}
wp_enqueue_script( 'theme-js', get_template_directory_uri() . '/js/theme.js', 'jquery' );
wp_enqueue_script( 'listgrid-cookie', get_template_directory_uri() . '/js/list-grid/cookie.js', 'jquery' );
wp_enqueue_script( 'listgrid', get_template_directory_uri() . '/js/list-grid/listgrid.js', 'jquery' );
wp_enqueue_script( 'slider-easing', get_template_directory_uri() . '/js/jquery.easing.1.3.js', 'jquery' );
wp_enqueue_script( 'home-slider', get_template_directory_uri() . '/js/slides.min.jquery.js', 'jquery' );
wp_enqueue_script( 'home-ajax-content', get_template_directory_uri() . '/js/dynamic-page/dynamicpage.js', 'jquery' );
/* wp_enqueue_script( 'mediaplus-script', get_template_directory_uri() . '/js/functions.js', 'jquery' ); */
}
add_action('init', 'mediaplus_scripts');
function add_admin_scripts() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js');
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'mediaplus_options', 'http://cdn.jquerytools.org/1.2.6/jquery.tools.min.js', 'jquery' );
}
add_action('init', 'add_admin_scripts');
代码问题是admin enqueue函数与主题函数冲突并导致禁用主题中的所有javascript只有admin jquery正在工作。
有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
我说你遇到了麻烦,因为你要取消注册WordPress附带的默认jQuery库(使用noConflict模式),然后将其替换为谷歌CDN版本(不使用noConflict模式)< / p>
你应该看看这篇关于wp-tuts的帖子,这对理解wp_enqueue函数和使用它们的最佳实践非常有帮助:http://wp.tutsplus.com/articles/how-to-include-javascript-and-css-in-your-wordpress-themes-and-plugins/
答案 1 :(得分:1)
您的问题的解决方案在add_action中。
add_action(' wp_enqueue_scripts ','mediaplus_scripts');
而不是
add_action('init','mediaplus_scripts');
wp_enqueue_scripts 用于前端, admin_enqueue_scripts 用于管理员。两者都会调用 init 操作。
我有同样的问题,感谢john的链接;)