使用自定义链接结果扩展古腾堡核心/链接结果

问题描述 投票:0回答:1

我一直试图在这里找到正确的方法,并尝试了一些方法,但没有任何效果。

基本上,当用户执行搜索时,我想包含来自第 3 方 API 的自定义结果,这些结果本质上是指向其他网站的简单链接

有没有什么方法可以在不创建自定义块的情况下实现这一目标? 此时欢迎任何建议。

LinkUI

wordpress wordpress-gutenberg gutenberg-blocks
1个回答
0
投票

我有类似的要求,这就是我的想法。

基本上我正在过滤 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
);
© www.soinside.com 2019 - 2024. All rights reserved.