Mam w mojej witrynie wordpress, w pętli single.php, tag select, w którym opcjami są posty bieżącej kategorii zwróconej przez niestandardowe zapytanie .Dynamicznie zmieniające się linki nawigacyjne (następne i poprzednie) w Wordpressie poprzez AJAX
Po zmianie wybranej opcji mam wiele funkcji javascript, które działają dobrze, ale ostatnia funkcja wśród nich (function f_next-previous
), wydaje się nie działać.
Celem tej funkcji jest aktualizacja następnego i poprzedniego łącza bez ponownego ładowania strony.
Kod stosunku do linków nawigacyjnych (Next i poprzednich) w moim szablonu działa dobrze i jest wyższa:
<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 -->
kod JavaScript tej funkcji jest:
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;
}
});
}
Plik next-previous.php
zawartość:
<?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;
?>
Podczas testowania tego pliku php y nadając jej wartość parametru p, daje wynik logiczny w przeglądarce. Skrypty JQuery i funkcje są dobrze dołączone i wszystkie AJAX na mojej stronie jest w porządku. Czego mi brakuje w tej pracy?
UPDATE: Należy zauważyć, że część mojego single.php plik odpowiedzialny wyzwalania wywołania AJAX jest:
<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>
Proszę zarejestrować błędy PHP w pliku i włączyć najwyższy poziom rejestrowania. Wyeliminuj wszystkie błędy, zanim zastanowisz się, dlaczego to nie działa (tak, dostałem błędy, tak PHP podpowiada ci gdzie). – hakre
Dzięki Hakre za szybką informację zwrotną, ale nie rozumiem cię dobrze. Nie mam żadnych błędów w mojej przeglądarce! a może nie wiem jak to zrobić, a także jak włączyć najwyższy poziom logowania? –
ok Myślę, że ten link http://www.w3schools.com/php/php_ref_error.asp wyjaśni mi te pojęcia, potrzebuję trochę czasu, aby tu wrócić i dać ostateczny wynik –