经过一个又一个小时的努力,我的脑袋都想不起来了,我正在努力wp_enqueue_script
我的自定义js但WordPress总是在父主题文件夹中查找,下面是我最近尝试的内容,但没有成功。
我父母的主题是2016年,
直接地wp_enqueue_script
:
function assets() {
wp_enqueue_script(\'ajax_filter\', get_stylesheet_directory_uri() . \'/js/ajax-filter-posts.js\', [\'jquery\'], null, true);
wp_localize_script( \'ajax_filter\', \'mdu\', array(
\'nonce\' => wp_create_nonce( \'mdu\' ),
\'ajax_url\' => admin_url( \'admin-ajax.php\' )
));
}
add_action(\'wp_enqueue_scripts\', \'assets\', 100 );
注册
wp_register_script
之前
wp_enqueue_script
:
function assets() {
wp_register_script(\'ajax_filter\', get_stylesheet_directory_uri() . \'/js/ajax-filter-posts.js\', [\'jquery\'], null, true);
wp_enqueue_script(\'ajax_filter\');
wp_localize_script( \'ajax_filter\', \'mdu\', array(
\'nonce\' => wp_create_nonce( \'mdu\' ),
\'ajax_url\' => admin_url( \'admin-ajax.php\' )
));
}
add_action(\'wp_enqueue_scripts\', \'assets\', 100 );
还有这个解决方案
wp_deregister_script
父主题脚本,
function assets() {
wp_deregister_script(\'parent-script-handle\');
wp_register_script(\'ajax_filter\', get_stylesheet_directory_uri() . \'/js/ajax-filter-posts.js\', [\'jquery\'], null, true);
wp_enqueue_script(\'ajax_filter\');
wp_localize_script( \'ajax_filter\', \'mdu\', array(
\'nonce\' => wp_create_nonce( \'mdu\' ),
\'ajax_url\' => admin_url( \'admin-ajax.php\' )
));
}
add_action(\'wp_enqueue_scripts\', \'assets\', 100 );
我正在跟进WordPress的建议:
https://developer.wordpress.org/themes/advanced-topics/child-themes/#enqueueing-styles-and-scripts
EDIT: fixed some coding errors这是我的全部功能。php内容
<?php
/**
*
* Functions and definitions.
*
*/
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
function my_theme_enqueue_styles() {
$parent_style = \'twentysixteen-style\'; // This is \'twentysixteen-style\' for the Twenty Sixteen theme.
wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\' );
wp_enqueue_style( \'child-style\',
get_stylesheet_directory_uri() . \'/style.css\',
array( $parent_style ),
wp_get_theme()->get(\'Version\')
);
}
//enqueue and localizing the Javascript.
function assets() {
//wp_deregister_script(\'parent-script-handle\');
wp_register_script(\'ajax_filter\', get_stylesheet_directory_uri() . \'/js/ajax-filter-posts.js\', [\'jquery\'], null, true);
wp_enqueue_script(\'ajax_filter\');
wp_localize_script( \'ajax_filter\', \'mdu\', array(
\'nonce\' => wp_create_nonce( \'mdu\' ),
\'ajax_url\' => admin_url( \'admin-ajax.php\' )
));
}
add_action(\'wp_enqueue_scripts\', \'assets\', 100 );
最后是我的控制台中的错误:
收到http://192.168.33.10/wp-content/themes/twentysixteen/js/ajax-filter-posts.js?ver=4.7.2 404(未找到)
我的JS文件位于216child/JS/文件夹中。
我真的很困惑这是如何工作的,我做错了什么,让这个js没有被加载,WP指向父主题…
感谢您的帮助和澄清!
好心的
马特。