انجمن


قرار دادن چندین Loop متفاوت در صفحه اصلی  (۱ نوشته)

  • 1Mehrdad

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲
    تشکر شده: ۱ بار
    # نوشته شده: ۴ سال پیش
    ۱۲ مرداد ۱۳۹۴ - ۱۴:۲۹

    با سلام خدمت دوستان
    دارم یه قالبی برای وردپرس طراحی میکنم که الان به مشکلات اساسی برخورد کردم، امیدوارم که کمکم کنید
    خب من تو صفحه اصلی قالب میخوام پست های مربوط به سه موضوع مختلف رو قرار بدم به این صورت:
    1- اول 4 مطلب آخر یه دسته ای به اسم مطالب برگزیده
    2- بعد میخوام دسته ی اخبار رو نشون بدم بصورتی که خبر اول با تصویر و متن نشون داده بشه و 6 خبر بعدی فقط عنوانشون لیست بشه
    3- و در آخر میخوام مطالب اصلی سایت بجز دو دسته ی بالا قرار داده بشه که در پایینش لینک شماره صفحات هم داشته باشه که مشکل اصلیم اینجاست که که وقتی کد شماره صفحات رو قرار میدم نمیره صفحه ی بعد و همش مطالب صفحه ی اول رو نشون میده که خودم فکر میکنم Loop ها و Query هایی که قرار دادم با هم قاطی شده و منم خیلی رو php و وردپرس مسلط نیستم برا همین نتونستم بفهمم مشکل کجاست، امیدوارم تو حل این مشکل کمکم کنید، اینم کد های که بکار بردم و فقط دسته ی اولی که چهار مطلب آخر رو نشون میده مشکل نداره!

    <!-- Loop 1 -->
    <?php $top_query = new WP_Query( 'cat=32&posts_per_page=4' ); ?>
    <?php if ( $top_query->have_posts() ) : while ( $top_query->have_posts() ) : $top_query->the_post(); ?>
    
    چهار مطلب آخر دسته
    
    <?php endwhile; endif; ?>
    
    <!-- Loop 2 -->
    <?php $news_query = new WP_Query( 'cat=1&posts_per_page=1' );
    while ( $news_query->have_posts() ) : $news_query->the_post();
    $do_not_duplicate = $post->ID; ?>
    
    خبر اصلی و محتویات
    
    <?php endwhile; ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post();
    if ( $post->ID == $do_not_duplicate ) continue; ?>
    
    عنوان اخبار بجز خبر اول
    
    <?php endwhile; endif; ?>
    
    <!-- Loop 3 -->
    
    <?php $query = new WP_Query( 'cat=2,7&posts_per_page=4' ); ?>
    <?php if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>
    
    مطالب اصلی که نیاز به صفحه بندی داره
    
    <?php endwhile; ?>
    
    <?php
    $big = 999999999;
    
    echo paginate_links( array(
    	'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    	'format' => '?paged=%#%',
    	'current' => max( 1, get_query_var('paged') ),
    	'total' => $the_query->max_num_pages
    ) );
    ?>
    
    <?php else: ?>
    404
    <?php endif; ?>

درباره‌ی این موضوع