【问题标题】:disabling default regex in search wordpress在搜索 wordpress 中禁用默认正则表达式
【发布时间】:2014-05-13 20:24:47
【问题描述】:

我在 wordpress 默认搜索的搜索引擎上苦苦挣扎了几天。 我没有使用任何插件进行搜索。 在我的站点中,有超过 20,000 个帖子,当我在寻找具有太多结果的关键字时,mysql 正在崩溃或 http 会话超时。

例如,我搜索了“q”。查询需要 40 秒到 10 秒甚至断开连接(取决于服务器目前的处理方式。) 但是当我在没有 REGEXP 部分的情况下手动查询时,我在 1-2 秒内成功获得了相同的结果。

您能否指导我在哪里实现了粗体部分,以便我可以从那里删除它?

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID 
FROM wp_posts 
WHERE 1=1 
AND (((wp_posts.post_title LIKE '%q%') 
OR (wp_posts.post_content LIKE '%q%') 
/--*- I want to get rid of this line 
OR (wp_posts.post_content REGEXP '\\[table id=(["\']?)(3|6|7|8|9|10|11|13|15)([\]"\' /])'))) 
---*/
AND wp_posts.post_type IN ('post', 'page', 'attachment', 'flagallery', 'discussion') 
AND (wp_posts.post_status = 'publish' 
OR wp_posts.post_author = 2882 
AND wp_posts.post_status = 'private') 
ORDER BY wp_posts.post_title LIKE '%q%' DESC, wp_posts.post_date DESC

【问题讨论】:

    标签: mysql sql regex wordpress search


    【解决方案1】:

    您要删除的 REGEXP 似乎不是标准“WordPress”安装的一部分。

    对我来说,它看起来像是一个“表格插件”正在添加这个,也许你正在使用 TablePress 或类似的东西?

    如果不是很明显哪个插件可能导致它...

    ...尝试一个一个地禁用你的插件,直到你摆脱它。

    编辑 1: 这是 TablePress 允许搜索表格内容的方式,因为它们不是普通 WordPress post_content 的一部分。

    将以下内容添加到您的主题 functions.php禁用对任何 TablePress 内容的搜索并提高性能:

    add_filter( 'tablepress_wp_search_integration', '__return_false' );
    

    这可能不是适合您的解决方案,因为您可能实际上想要搜索 TablePress 内容。

    考虑通过他们的支持渠道突出显示性能问题: http://tablepress.org/support/

    【讨论】:

    • 是的,我有 TablePress。我有一个庞大的系统来处理它。什么是 TableParse?
    • @Meschiany 我在答案中添加了有关禁用 TablePress 搜索的更多信息。
    猜你喜欢
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多