Haciendo que mi WordPress basado en AJAX sea rastreable

9

Leí lo siguiente y trato de aplicar este esquema a mi sitio web que ejecuta WordPress: enlace

Si visitas mi sitio web en enlace , verás que carga las publicaciones en la página de inicio y la URL se convierte en enlace cuando esta publicación esté cargada. Una versión estática del mismo contenido está disponible para el rastreador en enlace , pero si un visitante que usa un navegador lo visita, estará redirigido a enlace (esto se hace con javascript).

Para proporcionar al rastreador el ?_escaped_fragment_= necesario, utilicé un hack de WordPress que encontré en la red: enlace y ahora GoogleBot puede ver el contenido de mis páginas potenciadas por AJAX. Pensé que todo estaba hecho.

Pero cuando pego un enlace de publicación en Facebook (es decir,) no puedo leer el contenido de la página, así que supongo que mi sitio web no respeta realmente el esquema descrito en la documentación de Google ya que Facebook lo respalda (si pega enlace funcionará). Entonces, ya que estoy usando el complemento jQuery.address para obtener mi hashbang (¡#!) Fui a su sitio web y descargué sus archivos de muestra para ver cuáles eran las diferencias entre sus archivos y los míos y me di cuenta de que probablemente estaban usando una función php para crear las instantáneas HTML necesarias: enlace porque es por esto que, Supongo que Facebook no puede leer el mío.

<?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');
    }

?>

Entonces, creo que podría usar una función php similar para servir las instantáneas HTML en lugar de usar el pirateo de WordPress, pero necesitaría adaptarlo a WordPress. El problema es que no soy programador e hice lo mejor que pude hasta ahora.

Mi publicación está en este formato: enlace y la versión estática está disponible en enlace (donde anne-au-cherry es la babosa de la publicación y los cambios según la página que estemos viendo).

Entonces, mi pregunta es ¿podría alguien confirmar que estoy en el camino correcto y, si es posible, también ayudar a crear esa función php?

¡Muchas gracias por su tiempo y ayuda!

    
pregunta Gab 12.08.2011 - 04:14

3 respuestas

1

Lo que hice en realidad es no usar hashbangs como sugirió WraithKenny.

Usando el complemento de dirección jQuery con el método $ .address.state (value) para establecer la ruta base del sitio web que se utiliza en la gestión del estado de HTML5 y el método $ .address.value (value) para establecer el valor de enlace profundo actual que pude hacer lo que deseaba.

enlace

Las publicaciones (haga clic en la imagen en miniatura de una imagen) se cargan a través de AJAX y la URL cambia al mismo tiempo, las publicaciones existen por sí mismas, por supuesto, la misma estructura de enlace permanente, por lo que es totalmente rastreable.

El único problema será para los navegadores más antiguos que, creo (necesita ser verificado), todavía verán los hashbangs.

Como no soy un desarrollador, me tomó mucho tiempo entenderlo. : - / Pero estoy bastante contento con los resultados ahora ;-)

jQuery address: enlace

    
respondido por el Gab 20.02.2012 - 18:28
4

Específicamente EVITAR usar "hashbang" ("! #") para hacer que los sitios de WordPress con tecnología AJAX puedan rastrearse.

Realmente no quieres usar el método "hashbang" en un sitio de WordPress.

El "! #" es más como un parche pirateado para los sitios que no puede proporcionar un análogo estático a su versión AJAX. Google no recomienda su uso en general a menos que no haya una alternativa disponible.

No hay ningún beneficio para implementar un sistema hashbang en WordPress. Una solución de AJAX de front-end para WordPress debería funcionar alrededor del esquema de url existente (sin hash, no bang).

Resumen: WordPress es naturalmente rastreable; simplemente no lo rompas con hash-bangs.

    
respondido por el WraithKenny 31.01.2012 - 19:44
1

Si te refieres específicamente a que Facebook no muestra correctamente la metainformación de tu página, debes buscar en el complemento OpenGraph para WordPress, ya que agregará los metadatos de og: attribute apropiados. enlace

Además, puedes agregar un enlace como este en el encabezado

<link rel="canonical" href="link_back_to_real_post_url">

Y ver si eso hace algo.

Aunque tengo que preguntar, ¿por qué haces esto? Twitter ha sido objeto de grandes críticas para esta estructura de URL precisamente porque es un dolor rastrear. No digo que no debas hacerlo, sino que tienes bastante curiosidad por conocer la razón :)

    
respondido por el brandwaffle 23.12.2011 - 16:39

Lea otras preguntas en las etiquetas