Динамически меняющиеся навигационные ссылки (следующая и предыдущая) в Wordpress через AJAX
На моем WordPress сайте внутри цикла single.php есть тег select, в котором опциями являются сообщения текущей категории, возвращаемые с помощью пользовательского запроса.
При изменении выбранной опции у меня есть много функций JavaScript, которые работают хорошо, но последняя из них (function f_next-previous
), похоже, не работает.
Целью этой функции является обновление следующей и предыдущей ссылки без перезагрузки страницы.
Код относительно навигационных ссылок (следующий и предыдущий) в моем шаблоне работает хорошо и находится выше:
<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 -->
Код JavaScript этой функции:
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;
}
});
}
Файлnext-previous.php
Содержание:
<?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;
?>
При тестировании этого php-файла, присваивая ему значение параметра p, он дает логический результат в браузере. JQuery и функциональные скрипты хорошо включены, и все AJAX на моем сайте в порядке. Чего мне не хватает в этой работе ????
ОБНОВИТЬ: Обратите внимание, что часть моего файла single.php, ответственного за запуск вызова 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>