رفتن به مطلب

صفحه بندی در page template


پست های پیشنهاد شده

من یک صفحه اختصاصی برای سایتم طراحی کردم که اخرین مطالب مربوط به یک تگ را در اون صفحه نمایش میده. این هم کد آن:

<?php 
$test= new WP_Query(array(
'post_type' => 'post',
'post_status' => 'publish',
'tag'	=>	'008',
'order' => 'DESC',
'orderby' => 'date',
'posts_per_page' =>'1',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1 
)); ?> 
<?php 
if($test->have_posts()) : ?>
<?php 
while($etekhab->have_posts()) : $test->the_post();?> 
<?php the_title(); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wpbeginner_numeric_posts_nav(); ?>
<?php wp_reset_query(); ?>

و برای صفحه بندی هم از کد زیر استفاده می کنم.

function wpbeginner_numeric_posts_nav() {

    if( is_singular() )
        return;

    global $wp_query;

    /** Stop execution if there's only 1 page */
    if( $wp_query->max_num_pages <= 1 )
        return;

    $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
    $max   = intval( $wp_query->max_num_pages );

    /** Add current page to the array */
    if ( $paged >= 1 )
        $links[] = $paged;

    /** Add the pages around the current page to the array */
    if ( $paged >= 3 ) {
        $links[] = $paged - 1;
        $links[] = $paged - 2;
    }

    if ( ( $paged + 2 ) <= $max ) {
        $links[] = $paged + 2;
        $links[] = $paged + 1;
    }

    echo '<div class="navigation"><ul>' . "\n";

    /** Previous Post Link */
    if ( get_previous_posts_link() )
        printf( '<li>%s</li>' . "\n", get_previous_posts_link() );

    /** Link to first page, plus ellipses if necessary */
    if ( ! in_array( 1, $links ) ) {
        $class = 1 == $paged ? ' class="active"' : '';

        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );

        if ( ! in_array( 2, $links ) )
            echo '<li>…</li>';
    }

    /** Link to current page, plus 2 pages in either direction if necessary */
    sort( $links );
    foreach ( (array) $links as $link ) {
        $class = $paged == $link ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
    }

    /** Link to last page, plus ellipses if necessary */
    if ( ! in_array( $max, $links ) ) {
        if ( ! in_array( $max - 1, $links ) )
            echo '<li>…</li>' . "\n";

        $class = $paged == $max ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
    }

    /** Next Post Link */
    if ( get_next_posts_link() )
        printf( '<li>%s</li>' . "\n", get_next_posts_link() );

    echo '</ul></div>' . "\n";

}

مشکل این است که بعد از اعمال، شماره صفحات را نمایش نمی دهد. (این کد در قسمت category و archive به راحتی نمایش داده می شود.)

حتی کد زیر را بعد از نصب WP-PageNavi قرار دادم ولی کار نکرد.

 

<?php wp_pagenavi(); ?>

تو نت گشتم ظاهرا مشکل کوئری است که ازش استفاده می کنم. ولی هیچی نفمیدم که برای رفع آن باید چه کار کنم؟

ویرایش شده توسط alireza1375
لینک به ارسال

کد زیر را در انتهای صفحه مورد نظر

<div class="wp-pagenavi">
<div id="wp_page_numbers">
<ul>
    <li class="active_page"><!--?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?--></li>
</ul>
</div>
</div>

و کد زیر را هم در فایل style.css قالب قرار بدین.

.wp-pagenavi {
    clear: both;
    padding:0px 5px 15px 5px;
    direction:rtl
}
.wp-pagenavi h3 {
    font-weight:normal
}
.wp-pagenavi a, .wp-pagenavi span {
    text-decoration: none;
    background:#F9F8F2;
    border: 1px solid #ECE9D8;
    padding: 1px 6px;
    float :right;
    margin: 2px;
    -moz-border-radius: 3px;
}
.wp-pagenavi span.current {
    background:#ffffff;
    color:#666666;
    border: 1px solid #ECE9D8;
}
.wp-pagenavi a:hover {
    background:#e20030;
    border-color: #87001d;
    color:#ffffff
}
.wp-pagenavi span.current {
    font-weight: bold;
}

 

لینک به ارسال

این مورد را قبلا تست کرده بودم. جواب نداد.

+یک مورد اون بالا اشتباهی به جای $test از انتخاب etekhab اسفاده کرد

<?php 
$test= new WP_Query(array(
'post_type' => 'post',
'post_status' => 'publish',
'tag'	=>	'008',
'order' => 'DESC',
'orderby' => 'date',
'posts_per_page' =>'1',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1 
)); ?> 
<?php 
if($test->have_posts()) : ?>
<?php 
while($test->have_posts()) : $test->the_post();?> 
<?php the_title(); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wpbeginner_numeric_posts_nav(); ?>
<?php wp_reset_query(); ?>

 

ویرایش شده توسط alireza1375
لینک به ارسال

شما یک کوئری معمولی بنویسید

بخش paged و دستورات مرتبطش رو توی کوئری قرار بدید ببینید تو حالت ساده صفحه بندی اعمال میشه؟

  • امتیاز 1
لینک به ارسال
در در 1/27/2016 at 16:13، dariushbabri گفته است :

مرسی و ممنون

طراحی سایت

درود ، 

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

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...