reza_yki

مشکل با ای جکس

1 پست در این موضوع قرار دارد

ارسال شده در (ویرایش شده)

سلام ب تمامی اساتید

بنده یه کد نوشتم که مطالب رو به صورت ای جکس لود می کنه

مشکلی که دارم اینه که وقتی تعداد نمایش رو بیش از 1 می زنم بعد از اتمام مطالب و به انتها رسیدن مطالب مطلب به صورت تکراری لود میشه
 

کد های فایل js بنده

jQuery(document).ready(function ($) {
    $(document).on('click','#load-more-link',function(event){
    event.preventDefault();
    var $this = $(this);

    $this.text('در حال بارگذاری ...');

    var $container = $('.box-content');

    var $page = parseInt($this.data('page'));

    $.ajax({

        url : data.ajax_url,
        type:'post',
        dataType:'json',
        data:{
            action:'load_more_content',
            page : $page
        },
        //beforeSend:function(){
        //    var $container = $('.box-content').css('display','none');
        //    $($container).fadeIn(600)
        //},



        success:function(response , data){

            var $data = $(data);
            $data.hide();
            $container.append($data);
            $data.fadeIn(500);
            if( parseInt(response.count) > 0){

                $this.parent().before(response.content);

                $this.data('page',parseInt($page+1));


            }
            $this.text('مطالب بیشتر');
            if( (response.count) <= 0){
                $this.text('مطلبی وجود ندارد');
            }
        },

        error:function(){}

    });

});

    ////

});

کد فایل php بنده:

add_action('wp_ajax_load_more_content','load_more_content');
add_action('wp_ajax_nopriv_load_more_content','load_more_content');

function load_more_content(){

    $page  = intval($_POST['page']);
    if($page){

        $posts_per_page  = 1;

        $offset = ($page - 1) * $posts_per_page;
        //$ppg = get_option('posts_per_page');
        $load_more_args = array(

            'post_type' => array('post','download'),
            'offset'  => $offset,
            'posts_per_page' => $posts_per_page

        );

        $load_more_query = new WP_Query($load_more_args);


        $output_html = '';
        if($load_more_query->have_posts()):

            while($load_more_query->have_posts()):$load_more_query->the_post();

                //get_template_part('loops/loop-main');
                $output_html.= '<div class="box-content">';
                $output_html.= '<div class="box-img-posts">';
                $output_html .= get_the_post_thumbnail($load_more_query->post->ID,'main-thumbnails');
                $output_html.= ' <a href="'. get_the_permalink().'"><div class="hover-box tran-2s"></div>';
                $output_html.= ' <h2 class="post-title txt-shadow">';
                $output_html .=  get_the_title();
                $output_html.= '</h2></a></div>';
                $output_html.= '<!--start meta--><div class="box-content-meta">';
                $output_html.= '<span class="meta-posts"><i class="fa fa-calendar-o"></i>';
                $output_html.= get_the_date('d F Y', $load_more_query->post->ID) ;
                $output_html.= '</span>';
                $output_html.= '<span class="meta-posts"><i class="fa fa-eye"></i>'.get_post_views (get_the_ID()).'</span> ';
                $output_html.= '<span class="meta-posts"><i class="fa fa-comments"></i>';
                $output_html.= get_comments_number(get_the_ID());
                $output_html.= '</span>';
                $output_html.= '<span class="meta-posts"><a href="#" data-pid="'. get_the_ID().'" class="like-post"><i class="fa fa-thumbs-up"></i><span>'.get_post_likes(get_the_ID()).'</span></a></span></div>';
                $output_html.= '<div class="excerpt"><!--end meta--><!--start excerpt-->';
                $output_html.= get_the_excerpt() ;
                $output_html.= '</div> </div><!--end excerpt-->';
            endwhile;

        endif;

        $count = count($load_more_query);
        wp_reset_postdata();
        $result = array();
        $result['count'] = $count;
        $result['content'] = $output_html;
        wp_die(json_encode($result));


    }

    wp_die(json_decode(array('count'=> 0,'error'=>1)));

}

 

کد content بنده:

<?php
$ppg = 5;

    $all_posts_args = array(


        'posts_per_page' => $ppg,

    );

    $all_posts = new WP_Query($all_posts_args);
if($all_posts->have_posts()) :?>
    <?php while($all_posts->have_posts()):$all_posts->the_post(); ?>

        <div class="box-content" >
            <div class="box-img-posts">
                <?php the_post_thumbnail('main-thumbnails'); ?>
                <a href="<?php the_permalink(); ?>"><div class="hover-box tran-2s"></div>

                    <h2 class="post-title txt-shadow">
                        <?php the_title(); ?>
                    </h2></a>
            </div>
            <!--start meta-->
            <div class="box-content-meta">
                <span class="meta-posts"><i class="fa fa-calendar-o"></i><?php echo get_the_date('d F Y', get_the_ID()); ?></span>
                <span class="meta-posts"><i class="fa fa-eye"></i><?php echo get_post_views (get_the_ID()); ?></span>
                <span class="meta-posts"><i class="fa fa-comments"></i><?php comments_popup_link('0', '1', '%'); ?></span>
                <span class="meta-posts"><a <?php echo isset($_COOKIE['post-'.get_the_ID()]) && intval($_COOKIE['post-'.get_the_ID()]) ? 'data-liked="1"' : 'data-liked="0"'; ?> href="#" data-pid="<?php echo get_the_ID(); ?>" class="like-post"><i class="fa fa-thumbs-up"></i><span><?php echo get_post_likes(get_the_ID()); ?></span></a></span>
            </div>
            <!--end meta-->
            <!--start excerpt-->
            <div class="excerpt">
                <?php the_excerpt(); ?>
            </div>
            <!--end excerpt-->
        </div>
    <?php endwhile;
    else : ?>
        <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
    <?php endif; ?>

یعنی اگر $ppg = 1; غیر از این باشه مطالب تکراری لود میشه اگر هم 1 باشه باید برای نمایش مطالب بیشتر برای هر مطلب یک بار کلیک کرد که این کار خسته کننده است

 

ممنون

ویرایش شده در توسط reza_yki
0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط heshki
      با سلام خدمت همه دوستان محترم و گرامی.
      میخواستم بپرسم آیا میشه در یک رویداد از دو آی جکس استفاده کرد یا نه؟
      من به نطر خودم میشه ولی جواب نمیگیرم میشه راهنمایی کنید؟
    • توسط عمارگراف
      سلام
      وقتتون بخیر
      به یه مسئله ای برخوردم.
      میخوام ببینم امکانش هست که کوئری مطالب رو با استفاده از جی کوئری تغییر بدم؟
      ببینید به طور مثال کوئری فعلی به این شکله :

      <?php query_posts('post_type=post'); ?>
      میخوام به این شکل تبدیلش کنم :

      <?php query_posts('post_type=page'); ?>
      اما میخوام این اتفاق بدون رفرش شدن صفحه بیوفته. در واقع میخوام وقتی کاربر یه checkbox رو تیک میزنه این کد اجرا بشه.
      بخش جی کوئری رو به این صورت نوشتم که محتوای اون بخشی که کوئری داخلش هست رو تغییر بده اما کار نمیکنه.

      $( "#quer").html("<?php query_posts('post_type=post'); ?>");
      وقتی محتوا رو با یه کلمه یا رشته معمولی جایگزین میکنم کار میکنه. اما وقتی کد php میذارم کار نمیکنه.یه جورایی انگار برای نمایش خروجی php حتما نیاز به رفرش هست و جایگزینی کافی نیست.
      ممنون میشم راهنمایی بفرمایید
      این آدرس سایت :
      http://scdco.co/gallery/
    • توسط عمارگراف
      سلام
      وقتتون بخیر
      به یه مسئله ای برخوردم.
      میخوام ببینم امکانش هست که کوئری مطالب رو با استفاده از جی کوئری تغییر بدم؟
      ببینید به طور مثال کوئری فعلی به این شکله :
      <?php query_posts('post_type=post'); ?>
      میخوام به این شکل تبدیلش کنم :
      <?php query_posts('post_type=page'); ?>
      اما میخوام این اتفاق بدون رفرش شدن صفحه بیوفته. در واقع میخوام وقتی کاربر یه checkbox رو تیک میزنه این کد اجرا بشه.
      بخش جی کوئری رو به این صورت نوشتم که محتوای اون بخشی که کوئری داخلش هست رو تغییر بده اما کار نمیکنه.
      $( "#quer").html("<?php query_posts('post_type=post'); ?>");
      وقتی محتوا رو با یه کلمه یا رشته معمولی جایگزین میکنم کار میکنه. اما وقتی کد php میذارم کار نمیکنه.یه جورایی انگار برای نمایش خروجی php حتما نیاز به رفرش هست و جایگزینی کافی نیست.
      ممنون میشم راهنمایی بفرمایید
      این آدرس سایت :
      http://scdco.co/gallery/
    • توسط reza_yki
      سلام به همه
      خیلی دنبال کدی گشتم که قسمت دیدگاه رو بصورت ایجکسی بکنه اونم به صورت کد نه افزونه
      ممنون میشم کمکم کنید