Publiqué una pregunta hace un par de días sobre cómo Scroll to Single Post en una plantilla de Wordpress personalizada que estoy desarrollando. Lo que necesito en el shell nut es cargar una sola publicación en un DIV definido cuando se hace clic en un enlace en particular y luego desplazarme hacia abajo hasta ese DIV que contiene el contenido recién cargado. Teniendo en cuenta la naturaleza del contenido dinámico de Wordpress o de cualquier otro CMS, la URL de ese enlace no puede ser absoluta.Cargar contenido de publicaciones de Wordpress en DIV usando AJAX
Desafortunadamente, no había ninguna respuesta concreta en ese momento, así que decidí husmear un poco. Y dado que el problema principal era cargar el contenido de forma dinámica, decido ampliar la forma en que puedo hacerlo con AJAX en Wordpress:
Hasta ahora, he tenido una ligera idea de una gran publicación (Loading WordPress posts with Ajax and jQuery) por Emanuele Feronato. Básicamente almacena la ID de la publicación en el atributo rel del enlace que se puede hacer clic y luego la llama. Bueno, hay algunos otros pasos para que esto funcione, pero la razón por la que solo menciono la identificación de la publicación en este momento es porque parece que es la única parte de la ecuación que no está bien; la ID de publicación se carga en el atributo rel del enlace pero no se carga en la función .load.
Sólo para dar una idea más clara de lo que he recibido en mi marcado hasta el momento:
EL AJAX/jQuery header.php
$(document).ready(function(){
$.ajaxSetup({cache:false});
$(".trick").click(function(){
var post_id = $(this).attr("rel");
$("#single-home-container").html("loading...");
$("#single-home-container").load("http://<?php echo $_SERVER[HTTP_HOST]; ?>/single-home/",{id:post_id});
return false;
});
});
INDEX.PHP
<?php get_header();?>
<!--home-->
<div id="home">
<!--home-bg-->
<img class="home-bg" src="<?php bloginfo('template_url');?>/images/home-bg.jpg" />
<!--home-bg-->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<a class="trick" rel="<?php the_ID(); ?>" href="<?php the_permalink();?>">
<div class="box element col<?php echo rand(2,4); ?>" id="<?php $category = get_the_category(); echo $category[0]->cat_name; ?>">
<?php the_post_thumbnail(); ?>
<span class="title"><?php the_title(); ?></span>
<span class="ex"><?php the_excerpt(); ?></span>
</div>
</a>
<?php endwhile; endif; ?>
</div>
<!--home-->
<div id="single-home-container"></div>
SI NGLE-home.php (esta es una nueva plantilla)
<?php
/*
Template Name: single-home
*/
?>
<?php
$post = get_post($_POST['id']);
?>
<!--single-home-->
<div id="single-home post-<?php the_ID(); ?>">
<!--single-home-bg-->
<div class="single-home-bg">
</div>
<!--single-home-bg-->
<?php while (have_posts()) : the_post(); ?>
<!--sh-image-->
<div class="sh-image">
<?php the_post_thumbnail(); ?>
</div>
<!--sh-image-->
<!--sh-post-->
<div class="sh-post">
<!--sh-cat-date-->
<div class="sh-cat-date">
<?php
$category = get_the_category();
echo $category[0]->cat_name;
?>
- <?php the_time('l, F jS, Y') ?>
</div>
<!--sh-cat-date-->
<!--sh-title-->
<div class="sh-title">
<?php the_title();?>
</div>
<!--sh-title-->
<!--sh-excerpt-->
<div class="sh-excerpt">
<?php the_excerpt();?>
</div>
<!--sh-excerpt-->
<!--sh-content-->
<div class="sh-content">
<?php the_content();?>
</div>
<!--sh-content-->
</div>
<!--sh-post-->
<?php endwhile;?>
<div class="clearfix"></div>
</div>
<!--single-home-->
Sólo para que conste: Cuando el ID del mensaje no se pudo cargar, He intentado instalar ese tema en particular Kubrick utiliza en demostración de Emanuele Feronato y realizado los cambios necesarios de acuerdo con su guía, pero nada funcionó.
¿Alguien tiene alguna idea de lo que está pasando o si hay alguna otra forma de cargar dinámicamente la ID de la publicación en la función .load?
No es un método preferido que utiliza la funcionalidad integrada WP ajax - se puede ver aquí: [5 consejos para el uso de AJAX en WordPress] (http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress /) –
[Escribí un tutorial completo sobre cómo hacer que AJAX trabaje en Wordpress aquí.] (Http://stackoverflow.com/a/26950030/1922144) – davidcondrey