我一直试图在这里找到正确的方法,并尝试了一些方法,但没有任何效果。
基本上,当用户执行搜索时,我想包含来自第 3 方 API 的自定义结果,这些结果本质上是指向其他网站的简单链接
有没有什么方法可以在不创建自定义块的情况下实现这一目标? 此时欢迎任何建议。
我有类似的要求,这就是我的想法。
基本上我正在过滤 REST API 搜索的响应并添加我的数据。
add_filter(
'rest_post_dispatch',
function ( $result, $server, $request ) {
if ( '/wp/v2/search' === $request->get_route() && 'post' === $request->get_param( 'type' ) ) {
$res = $result->get_data();
global $wpdb;
$results = $wpdb->get_results(
$wpdb->prepare(
"SELECT * FROM `%1s` WHERE title LIKE %s OR slug LIKE %s OR description LIKE %s",
array(
'table_name' => $wpdb->prefix . 'MYTABLE',
'search' => '%' . $wpdb->esc_like( $request->get_param( 'search' ) ) . '%',
'search2' => '%' . $wpdb->esc_like( $request->get_param( 'search' ) ) . '%',
)
)
);
foreach ( $results as $link ) {
$res[] = array(
'id' => $link->id,
'title' => $link->title,
'url' => $link->url,
'type' => 'MY TYPE',
'subtype' => 'MY SUBTYPE',
);
}
$result->set_data( $res );
return $result;
}
return $result;
},
10,
3
);