Przeczytałem poniższe i próbuję zastosować ten schemat do mojej witryny z systemem WordPress: http://code.google.com/intl/fr-CA/web/ajaxcrawling/index.html
Jeśli odwiedzisz moją stronę internetową http://www.visualise.ca/ , zobaczysz, że ładuje posty na stronie głównej, a adres URL zmienia się na http://visualise.ca/#!/anne-au-cherry, kiedy to post jest załadowany. Statyczna wersja tej samej treści jest dostępna dla robota pod adresem http://visualise.ca/anne-au-cherry, ale jeśli odwiedzający korzystający z przeglądarki ją odwiedzi, zostanie przekierowany na http://visualise.ca/#! / anne-au-cherry (odbywa się to za pomocą javascript).
Aby zapewnić robotowi potrzebne ?_escaped_fragment_=
, skorzystałem z hacka WordPress, który znalazłem w sieci: http://www.wordpress-fr.net/support/sujet-54810-add-action-parse-request, a teraz GoogleBot może zobaczyć zawartość moich stron obsługiwanych przez AJAX. Myślałem, że wszystko zostało zrobione.
Ale kiedy wklejam link do posta na Facebooku (tj.), Nie jest w stanie odczytać zawartości strony, więc zgadywałem, że moja witryna tak naprawdę nie przestrzega schematu opisanego w dokumentacji Google, ponieważ Facebook go obsługuje (jeśli wkleisz http : //twitter.com/#! / gablabelle to zadziała). Ponieważ korzystam z wtyczki jQuery.address, aby pobrać swój hashbang (#!), Poszedłem na ich stronę internetową i pobrałem ich przykładowe pliki, aby zobaczyć, jakie były różnice między ich plikami a moimi i zdałem sobie sprawę, że prawdopodobnie używają funkcji php aby utworzyć potrzebne migawki HTML: https://github.com/bartaz/jquery-address/blob/master/samples/crawling/index.php, ponieważ chyba dlatego Facebook nie może czytać moich.
<?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');
}
?>
Domyślam się, że mógłbym użyć podobnej funkcji php do obsługi migawek HTML zamiast korzystania z hackowania WordPress, ale musiałbym dostosować ją do WordPress. Problem polega na tym, że nie jestem programistą i do tej pory zrobiłem, co mogłem.
Mój post jest w tym formacie: http://visualise.ca/#!/anne-au-cherry, a wersja statyczna jest dostępna pod adresem http://visualise.ca/anne-au-cherry (Where anne-au-cherry jest postem i zmienia się w zależności od oglądanej strony).
Więc moje pytanie brzmi: czy ktoś może potwierdzić, że jestem na właściwej ścieżce i jeśli to możliwe, również pomóc w tworzeniu tej funkcji php?
Wielkie dzięki za poświęcony czas i pomoc!