我阅读了以下内容,并尝试将此方案应用于运行WordPress的网站:http : //code.google.com/intl/fr-CA/web/ajaxcrawling/index.html
如果您访问我的网站http://www.visualise.ca/,您会看到它在主页上加载了帖子,并且当此网址变为http://visualise.ca/#!/anne-au-cherry帖子已加载。搜寻器可通过http://visualise.ca/anne-au-cherry获得相同内容的静态版本,但是如果使用浏览器的访问者访问了该内容,他将被重定向到http://visualise.ca/#! / anne-au-cherry(使用javascript完成)。
为了提供所需的?_escaped_fragment_=
搜寻器,我使用了网上找到的WordPress WordPress:http : //www.wordpress-fr.net/support/sujet-54810-add-action-parse-request,现在GoogleBot可以查看我的AJAX驱动页面的内容。我以为一切都完成了。
但是,当我将帖子链接粘贴到Facebook(即)时,它无法读取页面的内容,因此我猜测我的网站并不真正尊重Google文档中描述的方案,因为Facebook支持它(如果您粘贴http, ://twitter.com/#!/ gablabelle即可使用)。因此,由于我使用jQuery.address插件获取哈希值(#!),因此我去了他们的网站并下载了他们的示例文件,以查看他们的文件和我的文件之间的区别,并意识到他们可能在使用php函数创建所需的HTML快照:https : //github.com/bartaz/jquery-address/blob/master/samples/crawling/index.php,因为这就是我想Facebook无法读取我的原因。
<?php
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
$fragment = $_REQUEST['_escaped_fragment_'];
$file = 'data/' . (isset($fragment) && $fragment != '' && $fragment != '/' ? preg_replace('/\//', '', $fragment) : 'home') . '.xml';
$re = '/(^<[^>]*>)|(\n|\r\n|\t|\s{2,4})*/';
$handle = fopen($file, 'r');
if ($handle != false) {
$content = preg_replace($re, '', fread($handle, filesize($file)));
fclose($handle);
} else {
$content = 'Page not found!';
header(php_sapi_name() == 'cgi' ? 'Status: 404' : 'HTTP/1.1 404');
}
?>
所以我的猜测是,我可能可以使用类似的php函数来提供HTML快照,而不是使用WordPress hack,但我需要将其适应WordPress。问题是我不是程序员,到目前为止我已经尽力了。
我的帖子使用以下格式:http : //visualise.ca/#! / anne-au-cherry ,静态版本可在http://visualise.ca/anne-au-cherry(其中anne-au-cherry是帖子的内容,并且会根据我们正在查看的页面而变化)。
所以我的问题是有人可以确认我在正确的道路上,如果可能的话还可以帮助创建该php函数?
非常感谢您的时间和帮助!