WordPress中将指定类别的页面从Elastic search中排除的方法

image_print阅读模式

WordPress插件ElasticPress只提供了不索引特定类型PostType的帖子的方法,如果我不想某个分类被索引(比如Post类型下的分类zjdy),如何做到。这里使用SQL的方法,操作前请务必要备份数据库及服务器。

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT p.ID, 'ep_exclude_from_search', 1
FROM wp_posts p
INNER JOIN wp_term_relationships tr ON p.ID = tr.object_id
INNER JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
INNER JOIN wp_terms t ON tt.term_id = t.term_id
WHERE t.slug = 'zjdy';

SQL语句解析

  • INSERT INTO wp_postmeta: 插入数据到wp_postmeta表中。
  • (post_id, meta_key, meta_value): 指定插入的列名。
  • SELECT p.ID, ‘ep_exclude_from_search’, 1: 从之前的查询结果中获取post_id,并设置固定的meta_key和meta_value。
  • FROM … WHERE …: 后面的部分与之前的查询相同,用于获取”zjdy”类别下的所有帖子ID。

执行注意事项

  • 备份数据库: 在执行任何修改数据库的操作之前,务必备份数据库,以防意外发生。
  • 直接执行SQL语句: 可以使用phpMyAdmin等数据库管理工具直接执行上述SQL语句。
  • 插件或函数: 如果不熟悉SQL,可以使用WordPress的插件或函数来实现相同的功能。例如,可以使用WP_Query类获取帖子,然后循环添加meta数据。

注意事项

  • meta_key: “ep_exclude_from_search”是自定义的meta_key,不同的插件或主题可能使用不同的key。请根据你的实际情况进行调整。
  • meta_value: “1”通常表示排除,”0″表示包含。具体含义可能因插件而异。
  • 性能: 如果你的网站有大量帖子,执行上述SQL语句可能需要较长时间。可以考虑分批处理或者优化索引来提高效率。

其他方式

  • 使用插件: 很多SEO插件都提供了批量设置元数据的功能,可以直接通过插件界面来实现。
  • 自定义函数: 可以编写自定义函数来循环处理帖子,并添加meta数据。

总结

通过上述SQL语句,可以快速地将指定类别下的所有帖子从搜索结果中排除。但是,在执行之前,务必仔细检查SQL语句,并备份数据库,以确保数据的安全。

建议:

  • 了解ElasticPress配置: 如果您使用ElasticPress插件,可能需要在Elasticsearch中重新索引数据,以使更改生效。
  • 测试: 在生产环境执行之前,建议在测试环境中进行测试,以确保一切正常。

如果您还有其他问题,欢迎随时提出。

温馨提示:

  • 数据库操作风险较大,请谨慎操作。
  • 如果对SQL不熟悉,建议寻求专业人士的帮助。
0

评论0

请先
新22J01 工程做法-新疆维吾尔自治区工程建设标准设计-2022系列建筑标准设计图集
新22J01 工程做法-新疆维吾尔自治区工程建设标准设计-2022系列建筑标准设计图集
3分钟前 有人购买 去瞅瞅看
没有账号?注册  忘记密码?

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站