通过functions.php重写小部件
Woocommerce附带了一个默认的产品过滤器小部件,位于 /wp content/plugins/woocommerce/includes/widgets/class-wc-widget-layered-nav-filters.php 我有很多产品/类别等,使用它看起来非常混乱。我试着把它整理一下,并把它变成一个手风琴菜单,从底部的代码中可以看出,它似乎可以工作 然而,我正在努力把它添加到我的主题中 我使用以下工具创建了自己的小部件:通过functions.php重写小部件,php,wordpress,woocommerce,widget,Php,Wordpress,Woocommerce,Widget,Woocommerce附带了一个默认的产品过滤器小部件,位于 /wp content/plugins/woocommerce/includes/widgets/class-wc-widget-layered-nav-filters.php 我有很多产品/类别等,使用它看起来非常混乱。我试着把它整理一下,并把它变成一个手风琴菜单,从底部的代码中可以看出,它似乎可以工作 然而,我正在努力把它添加到我的主题中 我使用以下工具创建了自己的小部件: var acc=document.getElemen
var acc=document.getElementsByClassName(“小部件标题”);
var i;
对于(i=0;i
根据此
您必须根据保存此小部件的位置更改路径:
add_action( 'widgets_init', 'err_override_woocommerce_widgets', 15 );
function err_override_woocommerce_widgets() {
// Ensure our parent class exists to avoid fatal error (thanks Wilgert!)
if ( class_exists( 'WC_Widget_Layered_Nav' ) ) {
unregister_widget( 'WC_Widget_Layered_Nav' );
include_once( 'woocommerce/includes/widgets/custom-wc-widget-layered-nav.php' );
register_widget( 'Custom_WC_Widget_Layered_Nav' );
}
}
希望它能起作用
更新:
首先将脚本保存在您的js文件夹中,并将其命名为custom.js
,然后您必须按如下方式注册该脚本:
// Register your assets during `wp_enqueue_scripts` hook inside `functions.php`.
function custom_register_scripts() {
// Give the path of the script
wp_register_script('js-custom', 'path/to/js/custom.js',array('jquery'));
}
然后您可以将您的脚本排队到您的小部件所在的位置
public function widget( $args, $instance ) {
// Enqueue needed assets inside the `widget` function.
wp_enqueue_script('js-custom');
// Output widget contents.
}
精彩,干杯,整理了我的错误,但功能似乎不起作用。我不确定javascript是否在小部件中工作:-(是的,但是你必须小心地添加脚本并将其排队。看看更新部分,我希望它能工作!感谢你花时间来帮助我。我是一个完全的新手lol。我已经尝试了你在上面的更新中所说的,但仍然没有使新Javascript的功能生效。我知道我可能被把它放在错误的地方或犯了一个简单的错误,但我没有经验或知识知道我错在哪里。Enigma,再次感谢你的帮助。我发现了我犯的简单错误,但我遗漏了:
add_action('wp_排队_脚本','nav_脚本');
上面的函数自定义注册_脚本(){wp_register_script('js-custom','path/to/js/custom.js',array('jquery');}