رفتن به مطلب

ویرایش کوچک شماره بندی صفحات


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

دوستان عزیز خسته نباشید

من کد زیر را داخل فانکشن قرار دادم


/*pagination*/
function pagination($prev = '»', $next = '«') {
global $wp_query, $wp_rewrite;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('paged','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'prev_text' => __($prev),
'next_text' => __($next),
'type' => 'plain'
);
if( $wp_rewrite->using_permalinks() )
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
if( !empty($wp_query->query_vars['s']) )
$pagination['add_args'] = array( 's' => get_query_var( 's' ) );
echo paginate_links( $pagination );
};

و اون را با کد زیر در قالب فراخوانی می کنم


<div class="pagenation">
<?php pagination('«', '»'); ?>
</div>

ولی وقتی که هیچ شماره صفحه ای هم نیست کد زیر چاپ میشه.


<div class="pagenation">
</div>

چجوری می تونم کاری کنم که کد ها فقط زمانی که صفحه ای وجود داشت چاپ شوند؟

لینک به ارسال

تصحیح کد اولیتون


function pagination($prev = '»', $next = '«') {
global $wp_query, $wp_rewrite;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('paged','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'prev_text' => __($prev),
'next_text' => __($next),
'type' => 'plain'
);
if( $wp_rewrite->using_permalinks() )
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
if( !empty($wp_query->query_vars['s']) )
$pagination['add_args'] = array( 's' => get_query_var( 's' ) );
return paginate_links( $pagination );
};

بعدم این کد رو برای نمایش pagination توی پوستت قرار بده


<?php if ( count( pagination() ) ): ?>
<div class="pagenation">
<?php pagination('«', '»'); ?>
</div>
<?php endif ?>

لینک به ارسال

بررسی کنید

$wp_query->max_num_pages

بیشتر از 1 باشد

مقدار این کجا هست؟

تصحیح کد اولیتون


function pagination($prev = '»', $next = '«') {
global $wp_query, $wp_rewrite;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('paged','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'prev_text' => __($prev),
'next_text' => __($next),
'type' => 'plain'
);
if( $wp_rewrite->using_permalinks() )
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
if( !empty($wp_query->query_vars['s']) )
$pagination['add_args'] = array( 's' => get_query_var( 's' ) );
return paginate_links( $pagination );
};

بعدم این کد رو برای نمایش pagination توی پوستت قرار بده


<?php if ( count( pagination() ) ): ?>
<div class="pagenation">
<?php pagination('«', '»'); ?>
</div>
<?php endif ?>

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

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

مطمئن شید این قسمت درست در داخل loop قرار گرفته باشه


<?php if ( count( pagination() ) ): ?>
<div class="pagenation">
<?php echo pagination('«', '»'); ?>
</div>
<?php endif ?>

باید از echo استفاده میکردم ... کد تصحیح شد ..

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

کد اولی شما هم درسته ولی


<div class="pagenation">
</div>

رو اصلا در کد فراخوانی نمی کنی بلکه خودت دستی واردش کردی می تونی div را هم در کدت بسازی تا با کد فراخوانی بشه

و در کد دوم هم همین کار را با شرط کردن

لینک به ارسال

مطمئن شید این قسمت درست در داخل loop قرار گرفته باشه


<?php if ( count( pagination() ) ): ?>
<div class="pagenation">
<?php echo pagination('«', '»'); ?>
</div>
<?php endif ?>

باید از echo استفاده میکردم ... کد تصحیح شد ..

مطمئن هستم. من کد زیر را داخل فانکشن گذاشتم


function pagination($prev = '»', $next = '«') {
global $wp_query, $wp_rewrite;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('paged','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'prev_text' => __($prev),
'next_text' => __($next),
'type' => 'plain'
);
if( $wp_rewrite->using_permalinks() )
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
if( !empty($wp_query->query_vars['s']) )
$pagination['add_args'] = array( 's' => get_query_var( 's' ) );
return paginate_links( $pagination );
};

و این کد را هم داخل صفحه مورد نظر که اینجا صفحه اصلی هست


<?php if ( count( pagination() ) ): ?>
<div class="pagenation">
<?php pagination('«', '»'); ?>
</div>
<?php endif ?>

کد اولی شما هم درسته ولی


<div class="pagenation">
</div>

رو اصلا در کد فراخوانی نمی کنی بلکه خودت دستی واردش کردی می تونی div را هم در کدت بسازی تا با کد فراخوانی بشه

چجوری؟ میشه بگید کجای کد و چجوری بگذارمش

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

گفتم که کد تصحیح شد من فراموش کردم چاپش کنم کد جدید


<?php if ( count( pagination() ) ): ?>
<div class="pagenation">
<?php echo pagination('«', '»'); ?>
</div>
<?php endif ?>

لینک به ارسال

گفتم که کد تصحیح شد من فراموش کردم چاپش کنم کد جدید


<?php if ( count( pagination() ) ): ?>
<div class="pagenation">
<?php echo pagination('«', '»'); ?>
</div>
<?php endif ?>

الان درست شد. ممنون بابت راهنمایی

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...