0

我的 Wordpress 插件将架构属性插入到页面的源代码中。到目前为止,我使用 DOMDocument 来完成这项工作。

$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
    $img->setAttribute('itemprop', 'image');
}

因为我已经在同一个插件中使用了 JQuery,所以我想用这个替换这个函数。

$('img').attr('itemprop', 'image');

我更喜欢 JQuery 的原因是:我注意到无效的 HTML 语法会破坏 DOMDocument 方法。由于我不能指望插件的其他用户只使用有效的 HTML,我禁用了该功能的错误报告。这样做我感觉不舒服,而且 JQuery 函数似乎工作得更优雅(在我看来!)另外,我还没有找到一种将属性插入到 body-tag 中的方法,我只能添加属性到身体内的标签(我想知道你是怎么做到的!)

然而,JQuery 函数有一个缺点——这最终会导致我的问题。我注意到插入的属性不会显示在 Firefox 或 Chrome 的源视图中。这可能是因为 JQuery 在页面呈现后插入了这些。我可以在 Firebug 和 Chrome 检查器中看到项目属性。

现在。

我对爬虫的工作原理没有太多了解,如果他们愿意/可以执行 Javascript。如果他们不这样做,那么为此使用 JQuery 是没有意义的。

你怎么看,什么更好

4

2 回答 2

3

通过使用丰富网页摘要测试工具,您将准确了解爬虫所看到的内容: http ://www.google.com/webmasters/tools/richsnippets

于 2012-09-03T05:12:54.903 回答
2

爬虫不会读取 jQuery 插入的元数据。您需要在发送 http 响应之前添加此内容。

可以通过指定正确的文档类型来修复 DOMDocument 中断。无论如何,后渲染 javascript 解决方案是不够的,因为元数据对搜索引擎是不可见的。

于 2012-09-03T05:22:08.700 回答