Dynamisch wechselnde Navigationslinks (nächste und vorherige) in Wordpress über AJAX
Ich habe in meiner WordPress-Site, innerhalb der Schleife von single.php, ein Select-Tag, in dem die Optionen die Beiträge der aktuellen Kategorie sind, die über eine benutzerdefinierte Abfrage zurückgegeben werden.
Beim Ändern der ausgewählten Option habe ich viele Javascript-Funktionen, die gut funktionieren, aber die letzte Funktion unter ihnen (function f_next-previous
), scheint nicht zu funktionieren.
Ziel dieser Funktion ist es, die nächsten und vorherigen Links zu aktualisieren, ohne die Seite neu zu laden.
Der Code in Bezug auf Navigationslinks (nächste und vorherige) in meiner Vorlage funktioniert gut und lautet wie folgt:
<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 -->
Der Javascript Code dieser Funktion ist:
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;
}
});
}
Die Dateinext-previous.php
Inhalt ist:
<?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;
?>
Während Sie diese PHP-Datei testen, indem Sie dem Parameter p einen Wert zuweisen, wird im Browser ein logisches Ergebnis angezeigt. JQuery und Funktionsskripte sind gut enthalten und alle AJAX in meiner Website ist in Ordnung. Was vermisse ich in dieser Arbeit ????
AKTUALISIEREN: Beachten Sie, dass der Teil meiner single.php-Datei, der für das Auslösen des AJAX-Aufrufs verantwortlich ist, Folgendes ist:
<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>