valu/

wp-valu-search

Valu Search 的 WordPress 插件

0.8.0 2022-03-24 14:23 UTC

README

🚨 此插件已被弃用。请尽快将其移动到 Findkit 插件。

https://github.com/findkit/wp-findkit

WordPress 的 Valu Search

WordPress 插件,用于 Valu Search

此插件具有两个功能

  • 指导 Valu Search 爬虫如何爬取和抓取网站
  • 当内容创作者添加、更新和删除页面时,将 实时更新 发送到 Valu Search 索引

此插件不提供任何 UI。它仅向开发者公开一些配置选项和过滤器。

安装

Packagist

composer require valu/wp-valu-search

如果没有使用 composer,请从 发布页面 下载 .zip 文件,并将其解压到 wp-content/plugins 中。

黑客攻击

该插件向您的网站页面添加一个脚本标签。

如果您想测试安装后在您的网站上插件的行为,只需刷新页面,并查找具有 id="valu-search" 的脚本标签。

实时更新

当插件认为页面上的内容可能已更改时,将乐观地发送实时更新。然后云后端对该页面进行抓取请求,以确定实际更新了什么(添加、更新、删除)。

要启用实时更新,请将提供的凭据添加到 wp-config

define("VALU_SEARCH_USERNAME", "username");
define("VALU_SEARCH_API_SECRET", "****"); // Used to be called VALU_SEARCH_UPDATE_API_KEY
define("VALU_SEARCH_ENABLE_LIVE_UPDATES", true);

有一个过滤器用于控制更新过程。

在更改帖子/页面的永久链接时,新 URL 被索引,但旧 URL 仍然保留在索引中,直到下一次完整网站抓取。

/old-url --> /new-url // new url is indexed

如果更改的页面是分层帖子类型,则仅重新索引更新的页面。其他依赖于更改页面 slug 的页面,例如子页面,将在下一次完整抓取期间更新。

/old-url --> /new-url // new-url is indexed
/old-url/sub-page --> /new-url/sub-page // new-url/sub-page is not indexed.

JWT 认证

可以使用 JWT 认证限制搜索端点的访问。此插件可以为 @valu/react-valu-search 包自动生成 JWT 令牌。

令牌仅针对已登录用户生成,但可以使用 valu_search_allow_search_jwt 过滤器进行自定义。

将其添加到 wp-config.php 以启用它

define("VALU_SEARCH_API_SECRET", "****");
define("VALU_SEARCH_AUTHENTICATED_SEARCH", true);

此功能需要安装 PHP-JWT

过滤器

valu_search_content_selector

参数

  • $selector (字符串) 选择内容元素的 CSS 选择器
  • $post (WP_Post) 正在索引的页面所在的帖子

可以使用逗号分隔多个选择器。例如,.content,.main

valu_search_no_highlight_content_selector

参数

  • $selector (字符串) 选择内容元素的 CSS 选择器
  • $post (WP_Post) 正在索引的页面所在的帖子

可以使用逗号分隔多个选择器。例如,.content,.main

匹配的 HTML 内容与之前的 valu_search_content_selector 独立索引。内容在搜索 UI 中不被突出显示,但行为与其他内容完全相同,包括可搜索和语言分析。

valu_search_cleanup_selector

参数

  • $selector (字符串) 用于删除元素的 CSS 选择器
  • $post (WP_Post) 正在索引的页面所在的帖子

从所选元素中删除内容。

valu_search_show_in_search

参数

  • $show (布尔值) 是否索引页面
  • $post (WP_Post) 正在索引的页面所在的帖子

$show 为 false,如果帖子状态不是公开,或者帖子是存档。

valu_search_title

参数

  • $title (字符串) 如果正在索引的帖子是存档,则为其存档标题,否则为帖子标题
  • $post (WP_Post) 正在索引的页面所在的帖子

默认情况下,使用 html_entity_decode 解码 $title 中的 HTML 实体。要使用标题中的 HTML 实体,请通过 htmlentities 过滤 $title

valu_search_created

参数

  • $created (日期) 正在索引的页面的创建日期
  • $post (WP_Post) 正在索引的页面所在的帖子

valu_search_modified

参数

  • $modified (日期) 正在索引的页面的修改日期
  • $post (WP_Post) 正在索引的页面所在的帖子

valu_search_tags

参数

  • $tags (字符串[]) 标签数组
  • $post (WP_Post) 正在索引的页面所在的帖子

与页面一起索引的标签列表。默认情况下,会添加帖子类型、分类术语、静态 wordpress 以及 public / private 标签。可以使用这些标签构建自定义过滤用户界面。

valu_search_custom_fields

参数

  • $custom_fields_associative_array (数组("keyword"=>[], "date"=>[], "number"=>[]);) 包含所有自定义字段关联数组的关联数组
  • $post (WP_Post) 正在索引的页面所在的帖子

与页面相关的自定义字段。

valu_search_custom_fields_date

参数

  • $custom_fields_date_associative_array ([]) 包含自定义日期字段键值对的关联数组
  • $post (WP_Post) 正在索引的页面所在的帖子

与页面相关的自定义日期字段。例如,eventStart,eventEnd

valu_search_custom_fields_keyword

参数

  • $custom_fields_keyword_associative_array ([]) 包含自定义关键词字段键值对的关联数组
  • $post (WP_Post) 正在索引的页面所在的帖子

与页面相关的自定义关键词字段。例如,productPreview,productId

valu_search_custom_fields_number

参数

  • $custom_fields_number_associative_array ([]) 包含自定义数字字段键值对的关联数组
  • $post (WP_Post) 正在索引的页面所在的帖子

与页面相关的自定义数字字段。例如,productPrice

valu_search_superwords

参数

  • $superwords(字符串[]) 超词数组
  • $post (WP_Post) 正在索引的页面所在的帖子

与页面一起索引的超词列表。默认为空数组。超词可以用作将页面标记为给定超词的重要搜索结果。匹配超词的搜索结果将首先显示在结果中。

valu_search_page_meta

  • $meta (关联数组)
  • $post (WP_Post) 正在索引的页面所在的帖子

渲染到元标签的全部数据。

请参阅所有可用字段:https://search.valu.pro/page-meta

valu_search_site_meta

  • $meta (关联数组)
  • $post (WP_Post) 正在索引的页面所在的帖子

yoursite.example/valu-search.json 上公开的爬虫全局选项。

请参阅所有可用字段:https://search.valu.pro/site-meta

valu_search_should_update

参数

  • $should_update (布尔值) 默认为 php_sapi_name() !== 'cli' 的值
  • $post (WP_Post) 正在更新的页面的帖子

返回 false 以防止更新页面。

'valu_search_show_admin_notices'

  • $show_notices (布尔值) 默认为 false

返回 true 以启用 wp-admin 中的实时更新通知

操作

'valu_search_live_update_result'

每次执行实时更新请求时都会触发操作

  • $response 返回类型为 wp_remote_request() (数组|WP_Error)

API

\ValuSearch\enqueue_live_update(\WP_Post $post)

在 WordPress 请求的末尾通过 shutdown 操作发送帖子实时更新。可以多次调用,更新将被分批处理。

\ValuSearch\live_update(array $posts)

立即更新给定的帖子。