代码之家  ›  专栏  ›  技术社区  ›  Bazoqa

在Wordpress站点上实现自动完成

  •  1
  • Bazoqa  · 技术社区  · 7 年前

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

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

    我意识到这一更改可能会通过PHP完成,这就是我遇到问题的原因。我对HTML、CSS和Javascript很熟悉,但对PHP几乎没有经验,如果有人能帮助我,我将不胜感激。

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

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

    相关搜索框是带有默认文本“What are you looking?”的框

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sally CJ    7 年前

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

    脚本

    步骤#1:请参阅 SCRIPT #1 and SCRIPT #2 并从页面中删除这两个脚本。

    步骤#2:下载 this JS file 并将其上载到您的网站(例如 wp内容/主题/列表化子项/js/ ).

    步骤#3:从页面加载JS文件(例如,在 </body> ):

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

    或者您可以使用以下PHP代码段 正确地 在页面上加载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;
    }