Ho nel mio sito wordpress, all'interno del loop di single.php, un tag select in cui le opzioni sono i post della categoria corrente restituita tramite una query personalizzata .Cambiamento dinamico dei collegamenti di navigazione (successivo e precedente) in Wordpress tramite AJAX
Quando si modifica l'opzione selezionata, ho molte funzioni javascript che funzionano bene, ma l'ultima funzione tra loro (function f_next-previous
) non sembra funzionare.
Lo scopo di questa funzione è aggiornare i collegamenti successivi e precedenti senza ricaricare la pagina.
Il codice relativo al link di navigazione (precedente e successiva) nel mio modello sta lavorando bene ed è al di sopra:
<div id="nav-above" class="navigation">
<div class="nav-previous"><?php previous_post_link('%link', '<img height="34" src="' . get_bloginfo("template_directory") . '/images/previous.png" />'); ?></div>
<div class="nav-next"><?php next_post_link('%link', '<img height="34" src="' . get_bloginfo("template_directory") . '/images/next.png" />'); ?></div>
</div><!-- #nav-above -->
Il codice javascript di questa funzione è:
function f_next-previous(id)
{
$.ajax({
cache: true,
type: "GET",
timeout: 5000,
url: 'wp-content/themes/twentyten/pages/next-previous.php?p='+id,
success: function(msg)
{
$('#nav-above').html(msg);
},
error: function(msg)
{
alert("Your browser broke!");
return false;
}
});
}
Il file next-previous.php
il contenuto è:
<?php
$p=$_GET['p'];
require('../../../wp-load.php');
$my_query = new WP_Query();
$my_query->query(array('post__in' => array($p)));
if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); ?>
<div class="nav-previous"><?php previous_post_link('%link', '<img height="34" src="' . get_bloginfo("template_directory") . '/images/previous.png" />'); ?></div>
<div class="nav-next"><?php next_post_link('%link', '<img height="34" src="' . get_bloginfo("template_directory") . '/images/next.png" />'); ?></div>
<?php
endwhile;
endif;
?>
Durante il test di questo file php b aggiungendo un valore al parametro p, dà un risultato logico nel browser. Gli script di Jquery e di funzione sono ben inclusi e tutti gli AJAX nel mio sito web sono ok. Cosa mi manca in questo lavoro ????
UPDATE: nota che la parte del mio file single.php responsabile di innescare la chiamata AJAX è:
<form method="post" action="">
<select class="select2" name="" id="" >
<option value="<?php the_ID();?>"><?php the_title();?></option>
<?php
global $post;
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$myposts = get_posts("paged=$paged&category=4");
foreach($myposts as $post) :?>
<option value="<?php the_ID();?>"><?php the_title();?></option>
<?php endforeach;
wp_reset_postdata(); ?>
</select>
</form>
Registrare gli errori PHP nel file e abilitare il livello più alto per la registrazione. Eliminare tutti gli errori prima di chiedersi perché non funziona (sì ha errori, sì PHP ti dice dove). – hakre
Grazie Hakre per il tuo rapido feedback, ma non ti capisco bene. Non ho errori nel mio browser! o forse non so come fare, e anche come abilitare il più alto livello per la registrazione ?? –
ok Penso che questo link http://www.w3schools.com/php/php_ref_error.asp spiegherà queste nozioni a me, ho bisogno di tempo per tornare qui e dare il risultato finale –