Navegación AJAX en WordPress – Problemas con los enlaces permanentes

Así que aquí es donde estoy:

Programé un tema de blog que se asemeja a un escritorio con muchas cosas, que el usuario puede arrastrar, elementos en movimiento, etc. La parte principal del blog se encuentra dentro de un libro cuyas categorías puede navegar utilizando marcadores de página y páginas de giro.

Para dar al usuario la impresión de que en realidad está usando un “libro”, en primer lugar usé una estructura compleja (se refiere principalmente al lugar de los marcadores de páginas)

  1. Cada categoría utiliza su propia plantilla (category-4.php, category-5.php, etc.)
  2. El single.php conduce a plantillas sensibles a la categoría (6 categorías en total)

Cuando terminé, descubrí que había demasiado tráfico causado por elementos gráficos, ya que se volvían a cargar con cada clic y la página era increíblemente lenta. Así que pensé en una solución AJAX y finalmente utilicé la solución ezjax (http://www.fluidbyte.net/index.php?view=simple-ajax-content-changer-with-ezjax) que es básicamente un script que permite todos los hrefs con una cierta clase de carga dentro de un determinado div en el index.php. A medida que el contenido de los enlaces se carga en el div, guardo el código (y de esta manera el tráfico) para el fondo interactivo en los otros archivos de plantilla y de esta manera el tráfico.

Puedes ver la página de ejecución aquí y ver cómo funciona la navegación.

Básicamente eso es exactamente lo que quería pero todavía causa algunos problemas:

  1. Como los archivos de plantilla de publicaciones individuales, las categorías, por ejemplo, NO contienen el fondo, realmente no se pueden usar los enlaces permanentes para ellos. Realmente puedes hacer eso, pero se vería como la mitad de la página (http://www.palimpsest.eu/2011/02/01/differenzierung/). Evidentemente, es importante que los visitantes obtengan una vista “normal” del contenido.

  2. Por alguna razón, algunos complementos que necesitan conectarse con el ID de la publicación (como Sexybookmarks o Flattr) no funcionan. Supongo que la razón está conectada al 1. problema.

Ahora aquí están mis enfoques y me gustaría preguntarle cuál considera que es el mejor para tomar (o quizás darle alguna inspiración sobre otras formas de resolver el problema):

  1. Haciendo que single.php le pregunte si navega en línea o si viene de un sitio externo y luego lleva a dos plantillas diferentes (una corta y una con todo el contenido gráfico). En este caso, no sé cómo hacer que el single.php se dé cuenta de dónde vienes.

  2. Pensé en usar AJAXed WordPress pero no estoy seguro de si se ajustará a mis necesidades. Tampoco veo mucha documentación sobre el módulo de navegación.

  3. Cualquier otra forma que no actualice el contenido que ya se encuentra en los archivos temporales de Internet.

Estaría muy agradecido de recibir sugerencias sobre cómo lidiar con este problema.

Saludos cordiales, Lara

Bienvenido a SO. No estoy seguro de si entiendo qué es exactamente lo que estás tratando de hacer, pero este es el dilema habitual con las solicitudes AJAX de contenido solo en WP: quieres el enlace, cuando se hace clic en cargar una página como siempre. Pero también desea utilizar el mismo enlace para cargar la misma página a través de AJAX y luego no desea que el diseño se cargue también.

Suponiendo que este es el núcleo de su problema, aquí es cómo manejo esto generalmente:

// functions.php function is_ajax_request() { return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); } // eg in index.php or any other template file:  // ... Rest of your template ...  

De este modo, solo se carga el contenido si el archivo de plantilla se solicita a través de AJAX, de lo contrario, la página se carga como de costumbre.

Déjame saber si esto te ayuda, o explica de otra manera lo que estás buscando. Y me he dado cuenta de que las personas de por aquí evitan las preguntas demasiado largas. Entonces, cuanto más corto mejor;)