如何在WordPress中嵌入我的站点

时间:2020-09-29 作者:Nils Riga

有人能帮我理解如何调试这个以及怎么做吗?

简而言之,我创建了一个oembed提供者并将其添加到wordpress中。我看到wordpress得到了正确的json响应。但在提供的url上没有进一步的图片请求。

All I know

所以基本上我有一个wordpress网站,我想在写帖子时嵌入我另一个网站的图片。

我添加了

wp_oembed_add_provider( \'https://dynamicallyLoadedSPA.com/*\', \'https://laravelBackend.com/oembed/\', false );

函数中的函数。php(在wordpress网站上)。之后,当我在写帖子时粘贴链接时,嵌入过程就会发生,但仍然没有图片或任何东西。我不知道如何调试这个。

我在我的nginx日志中看到,

/oembed/?maxwidth=1060&maxheight=1000&url=https://dynamicallyLoadedSPA.com/some-link-with-picture-and-description&dnt=1&format=json

wordpress确实向该端点发出了请求。

如果我在浏览器中发出相同的请求,我的laravel后端将返回:

{
    "title": "Sausages",
    "description": "expiration date: 2020.10.01, 10euro",
    "url": "https://dynamicallyLoadedSPA.com/sausages",
    "type": "image",
    "tags": "food",
    "image": "https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg",
    "code": "<img src=\'https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg\'>"
}
但在woordpress收到这张照片后,在

https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg
端点。

为什么woordpress不请求图片并将其显示在post和post编辑器UI中?

我希望在woordpress中粘贴链接时,会出现一张带有描述的图片;古腾堡;编辑

ps.当我在gutenberg编辑器中查看可视可编辑块的html时,这是生成的html(那里的一切似乎都是有序的)

<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://dynamicallyLoadedSPA.com/sausages
</div></figure>

it\'s just blank in the editor, no description, no image

1 个回复
最合适的回答,由SO网友:Rup 整理而成

我认为您的oEmbed实现是错误的。你可以看到the WP-oEmbed class WordPress支持四种类型值:照片、视频、链接和丰富;而您返回的是type=image。

从…起the spec 第2.3.4节看起来WordPress的列表是完整的,一般不支持“图像”。您的意思可能是type=photo,但它们通常没有链接,并且具有您没有提供的强制高度和宽度属性。

因此,我认为您的选择是:

更改您的oEmbed提供程序以返回type=rich,并生成HTML以包含其中,扩展WordPress以支持type=image:实现oembed_dataparse filter(从我上面链接的函数的底部调用),在那里检测type=image,并从返回的oEmbed数据中返回要包含的生成HTML
不过,您也可能需要扩展Gutenberg以使用新类型,我不知道如何做到这一点

相关推荐

Use oEmbed for static html

我正在尝试添加jQuery插件(https://github.com/rmanivannan/speedometer-jquery-plugin) 到Wordpress页面(不是post),但是插件的行为不符合预期。我认为这可能与使用我的Wordpress主题生成页面时脚本引用、css引用和Javascript被破坏的方式有关。是否可以:-将包含控件的静态HTML页面上载到子域-使用oEmbed将静态HTML页面包括在Wordpress页面中i、 e.子域将是主域的oEmbed提供程序?