You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整WooCommerce实时搜索代码避免与Brizy编辑器冲突

问题根源

你修改代码时删除了原本包裹AJAX请求的fetch()自定义函数:原有搜索逻辑是触发输入事件(比如输入框键入、搜索按钮点击)时调用fetch()函数发起请求,修改后代码变成页面加载时直接发起无关键词的请求,且原有触发逻辑找不到fetch()函数,自然无法触发搜索。
你保留的Brizy编辑器判断逻辑本身是正确的,仅在编辑器加载时跳过输出搜索脚本,不会影响前台正常访问时的功能。

修复后的完整代码

替换你当前的ajax_fetch函数即可:

function ajax_fetch() {
    // 后台管理页直接跳过输出
    if ( is_admin() ) {
        return;
    }
    // Brizy编辑模式下跳过输出脚本
    if ( isset( $_GET[ Brizy_Editor::prefix('-edit-iframe') ] ) || isset( $_GET[ Brizy_Editor::prefix('-edit') ] ) ) {
        return;
    }
    ?>
    <script type="text/javascript">
        // 此处修改为独特函数名,避免和JS原生fetch API冲突
        function custom_product_search_fetch(){
            const keyword = jQuery('#keyword').val();
            // 增加非空判断,避免无意义的空请求
            if (keyword.trim() === '') {
                jQuery('#datafetch').empty();
                return;
            }
            jQuery.ajax({
                url: '<?php echo admin_url('admin-ajax.php'); ?>',
                type: 'post',
                data: { action: 'data_fetch', keyword: keyword },
                success: function(data) {
                    jQuery('#datafetch').html( data );
                }
            });
        }
    </script>
    <?php
}
配套调整说明
  1. 请将你页面中原有调用fetch()的触发逻辑(比如输入框的onkeyup="fetch()"属性、jQuery绑定的keyup/input事件),同步修改为调用custom_product_search_fetch()
  2. 可选优化点:你原有data_fetch函数中存在两处不规范代码,可自行调整:
    • 把<div class="row""">的多余双引号删除,改为<div class="row">
    • 把弃用的get_product( get_the_ID() )替换为WooCommerce当前推荐的wc_get_product( get_the_ID() )

内容的提问来源于stack exchange,提问作者SavPhill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:15:03