2014-11-04 7 views
2

Может кто-нибудь помочь мне с ajax pagination, пожалуйста, я уже 2 дня и не могу понять это. У меня есть «Нагрузка больше стилей», это код, классический стиль (ниже). Все работает как строгание, за исключением случаев, когда местозаполнитель достигает страницы 10. Затем, черт возьми, ломается и ничего больше не загружается. Кнопка все еще работает до тех пор, пока не будут достигнуты максимальные значения, и кнопка будет удалена, но ничего не произойдет с более чем 10 заполнителями. Веб-сайт, в котором я сейчас использую этот скрипт, и местом, где вы можете проверить себя, является следующее: http://filmhdonline.com/category/toate-filmele/ Я был бы признателен, если у кого-то есть идее, о чем я говорю. Заранее спасибо.wordpress ajax pagination breaks after 10 pages

jQuery(document).ready(function() { 

    // The number of the next page to load (/page/x/). 
    var pageNum = parseInt(pbd_alp.startPage); 

    // The maximum number of pages the current query can return. 
    var max = parseInt(pbd_alp.maxPages); 

    // The link of the next page of posts. 
    var nextLink = pbd_alp.nextLink; pageNum++; 

    //Load more videos translation 
    var more = pbd_alp.more; 

    //Loading videos translation 
    var loading = pbd_alp.loading; 

    /** 
    * Replace the traditional navigation with our own, 
    * but only if there is at least one page of new posts to load. 
    */ 

    if(pageNum <= max) { 

     // Remove the traditional navigation. 
     jQuery('.pagination').remove(); 

     // Insert the "More Posts" link. 
     if(jQuery('#content').find('ul.listing-videos').length == 1){ 
      jQuery('#content ul.listing-videos').append('<li class="more-posts pbd-alp-placeholder-' + pageNum + '"></li>'); 
      jQuery('#content').append('<p id="pbd-alp-load-posts" class="pagination"><a href="#">' + more + '</a></p>'); 
     } 

    } 


    /** 
    * Load new posts when the link is clicked. 
    */ 
    jQuery('#pbd-alp-load-posts a').click(function() { 

     // Are there more posts to load? 
     if(pageNum <= max) { 

      // Show that we're working. 
      jQuery(this).text(loading); 

      jQuery('.pbd-alp-placeholder-'+ pageNum).load(nextLink + ' #content ul.listing-videos li', 
       function() { 
        //jQuery('.pbd-alp-placeholder-'+ pageNum).children('li').unwrap();     
        console.log(pageNum); 

        jQuery(this).children().hide(); 


        $newContent = jQuery(this).children().unwrap(); 


        $newContent.fadeIn('fast'); 

        // Update page number and nextLink. 
        pageNum++; 
        nextLink = nextLink.replace(/\/page\/[0-9]?/, '/page/'+ pageNum); 

        **// Add a new placeholder, for when user clicks again. 
        jQuery('#content ul.listing-videos').append('<li class="more-posts pbd-alp-placeholder-'+ pageNum +'"></li>');** 

        // Update the button message. 
        if(pageNum <= max) { 
         jQuery('#pbd-alp-load-posts a').text('Vezi mai multe'); 
        } else { 
         jQuery('#pbd-alp-load-posts a').remove(); 
        } 
       } 
      ); 
     } else { 
      jQuery('#pbd-alp-load-posts a').append('.'); 
     } 

     return false; 
    }); 
}); 

ответ

2

Для АЯКС пагинацией в WordPress, Вы можете использовать плагин как https://wordpress.org/plugins/wp-pagenavi/.

ИЛИ

<div id="content"> 
<?php 
$new_query = new WP_Query(); 
$new_query->query('post_type=post&showposts=1'.'&paged='.$paged); 
?> 

<?php while ($new_query->have_posts()) : $new_query->the_post(); ?> 
<?php the_title(); ?> 

<?php endwhile; ?> 
    <div id="pagination"> 
     <?php next_posts_link('&laquo; Older Entries', $new_query->max_num_pages) ?> 
     <?php previous_posts_link('Newer Entries &raquo;') ?> 
    </div> 
</div><!-- #content --> 

<script> 
jQuery(function($) { 
    $('#content').on('click', '#pagination a', function(e){ 
     e.preventDefault(); 
     var link = $(this).attr('href'); 
     $('#content').fadeOut(500, function(){ 
      $(this).load(link + ' #content', function() { 
       $(this).fadeIn(500); 
      }); 
     }); 
    }); 
}); 
</script> 
+0

этот является частью темы, и я все равно оставляю свое расстояние до плагинов насколько возможно. –

+0

@VartolomeiEduardClaudiu Измените код в соответствии с приведенным выше комментарием –

+0

sory, не хочу грубить, полностью изменить код, который я мог бы сделать в любое время, но тогда я должен переделать все CSS для темы, это боль. то, что я имею в настоящее время работает 99%, проблема в том, когда вы достигаете plaheholder 10,11,12, он больше ничего не показывает. Я оставил URL-адрес, чтобы вы могли проверить, что я говорю. я действительно не хочу переписывать коды. хотя это не то, за что я благодарен вам за ваш ответ. –

1

У меня такая же проблема. Если это все еще происходит, замените:

nextLink = nextLink.replace(/\/page\/[0-9]?/, '/page/'+ pageNum); 

в

nextLink = nextLink.replace(/\/page\/[0-9]*/, '/page/'+ pageNum); 

Проблема в неправильном регулярное выражение [0-9]? соответствует только одному числу от 1 до 9. От 10 требуется только 1. Вместо [0-9] * соответствует от 0 до бесконечности. Таким образом, он ломается после 9 (форма от 0 до 9), потому что следующие 10 и это нужно использовать только 1.

+0

- ответ? это трудно сказать. –