【问题标题】:Implementing Autocomplete on a Wordpress site在 WordPress 网站上实现自动完成
【发布时间】:2018-08-08 23:36:36
【问题描述】:

所以我正在开发一个 Wordpress 网站,该网站是各种业务类型(医生、律师、房地产经纪人等)的目录。我想在我的主题的现有搜索栏之一上实现实时自动建议功能。我设法遵循本教程 (https://www.w3schools.com/php/php_ajax_livesearch.asp) 并成功实现了它。

但是,自动建议的这种实现会立即将您带到 XML 文件中指定的专用链接。也就是说,当您单击要选择的建议(即牙医)时,它会自动将您带到该页面。我想要自动建议做的就是用选定的文本填充相关的文本框。

我意识到这种更改可能会通过 PHP 完成,这就是我遇到麻烦的原因。我对 HTML、CSS 和 Javascript 很熟悉,但对 PHP 的经验很少,我希望得到任何人可以帮助我的 andy 指导或资源。

我也愿意接受任何与我解决问题的方式无关的问题解决方案。

相关网站的链接(托管在开发域上):http://temp4.dotdevelopment.net/

相关搜索框是带有默认文本“您在寻找什么?”的框。

【问题讨论】:

    标签: php ajax wordpress autocomplete


    【解决方案1】:

    我已经为您重新创建了脚本。随意使用和修改代码。

    脚本

    第 1 步:查看 SCRIPT #1 and SCRIPT #2 并从页面中删除这两个脚本。

    第 2 步:下载 this JS file 并将其上传到您的网站(例如,到 wp-content/themes/listify-child/js/)。

    步骤#3:从页面加载JS文件(例如在</body>之前添加以下内容):

    <script src="wp-content/themes/listify-child/js/custom-auto-suggest.js"></script>
    

    或者你可以使用下面的PHP sn-p来正确加载页面上的JS文件:

    // Add this code snippet to functions.php
    add_action( 'wp_enqueue_scripts', function() {
        // Load the JS file only on the home page.
        if ( is_home() ) {
            // Here, I assumed the JS file is at wp-content/themes/listify-child/js/custom-auto-suggest.js
            wp_enqueue_script( 'custom-auto-suggest', get_theme_file_uri( '/js/custom-auto-suggest.js' ), array( 'jquery' ), '20180302' );
        }
    } );
    

    自定义 CSS

    将这些添加到主题的样式表/CSS 文件中:

    /* Styles for the AJAX auto-suggest results. */
    
    #livesearch .ac-item {
        cursor: pointer;
    }
    
    #livesearch .ac-item.active,
    #livesearch .ac-item:hover {
        color: red;
    }
    

    【讨论】:

    • 嗨,Sally,有一个快速跟进的问题,我实施了您的解决方案,效果很好,但自动搜索并没有改变它正在访问的 XML 文件。本质上,它的行为就像选择的类别始终是“所有类别”,而不是根据在第一个下拉列表中选择的选项而改变。有什么想法可能导致这种情况吗?
    • 也非常感谢您帮助我,代码记录得很好,效果很好,我真的很感激。
    • 嗨@Bazoqa。我可以看到您已经在页面上实现了脚本,并且我已经测试了自动建议功能,它对我来说效果很好吗?当我更改类别并键入关键字时,结果仅来自所选类别。那么,您能解释一下“自动搜索不会改变它正在访问的 XML 文件”吗?如有必要,使用截屏视频,以便我可以看到需要更改/调整甚至修复的内容。
    • 例如,选择“律师”类别(第一个选择框)时,我可以在第三盒中键入“chiro”,并且“脊椎按摩术物理治疗”表现为一个建议,应该只应如果在第一个框中选择了“医生”而不是“律师”,则会发生这种情况。在您的 javascript 文件中,我相信代码的“// 定义不同的搜索 URL”部分没有选择适当的 php 文件。
    • 实际上,这不会发生在我身上。我会为你发布一个截屏视频。 (但这需要时间,尤其是上传。)
    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 2013-07-12
    • 2017-03-16
    • 2013-10-27
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多