Ho inviato una domanda un paio di giorni fa su come Scroll to Single Post in un modello Wordpress personalizzato che sto sviluppando. Quello che mi serve nella shell dado è caricare un singolo post in un DIV definito quando si fa clic su un particolare collegamento e quindi scorrere verso il basso fino a quel DIV che contiene il contenuto appena caricato. Considerando la natura dinamica del contenuto di Wordpress o di qualsiasi altro CMS, l'URL di quel collegamento non può essere assoluto.Caricare Wordpress postare contenuti in DIV utilizzando AJAX
Sfortunatamente, non c'era una risposta concreta in quel momento, quindi ho deciso di curiosare un po '. E poiché il problema principale è stato caricare il contenuto in modo dinamico, decido di ingrandire come posso farlo con AJAX su Wordpress:
Finora, ho avuto una leggera idea da un grande post (Loading WordPress posts with Ajax and jQuery) di Emanuele Feronato. In pratica memorizza l'ID post nell'attributo rel del link cliccabile e poi lo chiama. Bene, ci sono alcuni altri passaggi per farlo funzionare, ma la ragione per cui sto solo citando il post ID adesso è perché sembra che sia l'unica parte dell'equazione che non è giusta; l'ID post viene caricato nell'attributo rel del collegamento ma non viene caricato nella funzione .load.
solo per darvi una migliore idea di quello che ho ottenuto nel mio markup finora:
L'AJAX/jQuery IN 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 (questo è un modello personalizzato)
<?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-->
Tanto per la cronaca: Quando l'ID messaggio non è stato caricato, ho provato a installare quel particolare tema Kubrick utilizzato nella demo di Emanuele Feronato e apportate le modifiche necessarie secondo la sua guida, ma nulla ha funzionato.
Qualcuno ha idea di cosa sta succedendo o se esiste un altro modo per caricare dinamicamente l'ID post nella funzione .load?
C'è un metodo preferito che utilizza le funzionalità incorporate WP Ajax - si può vedere qui: [5 suggerimenti per l'utilizzo di AJAX in WordPress] (http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress /) –
[Ho scritto una panoramica dettagliata su come far funzionare AJAX in Wordpress qui.] (Http://stackoverflow.com/a/26950030/1922144) – davidcondrey