valu /
wp-valu-search
Valu Search 的 WordPress 插件
Requires
- composer/installers: ~1.0
This package is auto-updated.
Last update: 2024-09-18 14:35:51 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)
立即更新给定的帖子。