Search for anything in site

时间:2016-10-25 作者:Josip Ivic

所以,我遇到了一个问题。

我想要什么?

我希望我的搜索能在页面上找到任何文本,有什么问题吗?

搜索仅用于帖子/媒体/页面。我有一个插件,其中存储了一些数据,这些数据在页面上可见,我希望能够搜索这些数据

我试图更改搜索查询(select * from wp_posts) 对于我想要的东西,什么都没有发生,我尝试了大约15个带有搜索的插件,什么都没有发生,所以,我的问题是:

如何在wordpress页面中搜索,以便在页面上查找任何文本?

注意事项:

文本未存储在wp\\U posts表中,也没有posts。仅包含短代码的页面。

谢谢

2 个回复
最合适的回答,由SO网友:CodeMascot 整理而成

使用mark.js, jQuery插件

mark.js 是一个用纯JavaScript编写的插件,但也可以作为jQuery插件使用。开发它是为了提供比其他插件更多的机会,可以选择:

单独搜索关键字,而不是完整的术语映射变音符号(例如,如果“justo”也应该匹配“justò”)

  • 忽略自定义元素内部的匹配

    DEMO

    或者,您可以看到this fiddle.

    Usage example:

    // Highlight "keyword" in the specified context
    $(".context").mark("keyword");
    
    // Highlight the custom regular expression in the specified context
    $(".context").markRegExp(/Lorem/gmi);
    
    它是免费的,在GitHub上开发的开源软件(project reference).

    标记示例。用代码突出显示js关键字

    $(function() {
      $("input").on("input.highlight", function() {
        // Determine specified search term
        var searchTerm = $(this).val();
        // Highlight search term inside a specific context
        $("#context").unmark().mark(searchTerm);
      }).trigger("input.highlight").focus();
    });
    
    mark {
      background: orange;
      color: black;
    }
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.jsdelivr.net/mark.js/7.0.0/jquery.mark.min.js"></script>
    <input type="text" value="test">
    <div id="context">
      Lorem ipsum dolor test sit amet
    </div>
    
    我找到了答案here. 你也可以在那里找到很多其他答案。但我更喜欢使用jQuery 插件。原因如下-

    为什么使用自制的突出显示功能是个坏主意?为什么从头开始构建自己的突出显示功能可能是个坏主意,因为你肯定会遇到其他人已经解决的问题。挑战:

    您需要删除带有HTML元素的文本节点,以突出显示匹配项,而不会破坏DOM事件,也不会一次又一次地触发DOM重新生成(例如。innerHTML)

    当使用现有的、实现良好的插件时,您不必担心上述问题。

    希望这件事对你有帮助。

  • SO网友:Christopher Corrales

    WP默认搜索不好,请尝试此插件:https://wordpress.org/plugins/search-everything/

    或者这个更好,但你有薪水https://searchwp.com/. 可以指定要搜索的自定义字段或短代码。

    如果您的文本不在数据库中,您应该在您的网站中使用谷歌自定义搜索引擎

    相关推荐

    nothing happen in search form

    我想创建搜索表单,但当我搜索时什么都没有发生,这是代码:索引。php: <div class=\"tech-btm\"> <?php get_search_form();?> </div> 搜索表单:<form role=\"search\" method=\"get\" id=\"searchform\" action=\"<?php echo home_url(\'/\')?>\"> &