رفتن به مطلب

مشکل این کد چیه ؟!


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

سلام دوستان ...

من کد زیر رو به این صورت شرطی کردم، به نظرتون درسته یا نه ؟!


<?php if (wp_pagination('')) : ?>
<section class="section wow fadeIn">
<div class="box">
<div class="pagination"><?php wp_pagination(''); ?></div>
</div>
</section>
<?php endif; ?>

لینک به ارسال

سلام ، به نظر که مشکلی نداره ، کد میگه که اگر چیزی به نام wp_pagination وجود خارجی داشت کد زیر رو نمایش بده.

(فقط در صورتی کار نمیکنه که wp_pagination در هر صورت وجود خارجی داشته باشه)

یه نوع دیگه شرطی برای صفحات قبل و بعد:

http://wordpress.stackexchange.com/questions/141706/conditional-statement-to-show-pagination

  • امتیاز 1
لینک به ارسال

بله درسته حرف شما! ولی خروجیش به این شکله !!!!


<ul><li id="max-paged"><span>صفحه 1 از 2</span></li><li><span class='page-numbers current'>1</span></li><li><a class='page-numbers' href='http://localhost/takwarez/category/film/page/2/'>2</a></li><li><a class="next page-numbers" href="http://localhost/takwarez/category/film/page/2/">بعدی »</a></li></ul>

یعنی اصلاً از اون کدهای وسط پیروی نمیکنه !!! مشکلش چیه به نظرتون !؟

لینک به ارسال

wp_pagination احتمالاً تابعی هست که خروجی اون به شکل echo هست و بیشتر اینجور تابع‌ها، خروجی void به شما می‌دن و عملگر منطقی هم به شما همیشه false رو میده. چون false میده کد وسط اجرا نمیشه، ولی پیج‌ها اکو می‌شن.

باید از یه تابع که از return برای خروجی استفاده می‌کنه، استفاده کنید یا از ob_start کمک بگیرید.

موفق باشید.

  • امتیاز 3
لینک به ارسال

اگه میخواید چک کنید تابعش وجود داره یا نه از function_exists() استفاده کنید .


if (function_exists('wp_pagination'))

چک‌کردن وجود تابع کمکی به اینکه آیا صفحه‌ای در پس یا پیش وجود داره، نمیکنه، چون به هر حال تابع وجود داره ولی چون برگه‌ای نیست، یا void برمی‌گردونه یا mixed.

  • امتیاز 1
لینک به ارسال

چک‌کردن وجود تابع کمکی به اینکه آیا صفحه‌ای در پس یا پیش وجود داره، نمیکنه، چون به هر حال تابع وجود داره ولی چون برگه‌ای نیست، یا void برمی‌گردونه یا mixed.

اکی

محتویات تابع wp_pagination رو نداری ؟ @mahdi.a

ویرایش شده توسط hannanstd
  • امتیاز 1
لینک به ارسال

اگر مشکل فقط گرفتن لینک های صفحه بندی هست فکر کنم از توابع زیر بتونید استفاده کنید.

https://codex.wordpress.org/Pagination

  • امتیاز 1
لینک به ارسال

اکی

محتویات تابع wp_pagination رو نداری ؟ @mahdi.a


<?php
function wp_pagination() {
global $wp_query;
$big = 12345678;
$page_format = paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages,
'type' => 'array'
) );
if( is_array($page_format) ) {
$paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
echo '<ul>';
echo '<li id="max-paged"><span>صفحه '. $paged . ' از ' . $wp_query->max_num_pages .'</span></li>';
foreach ( $page_format as $page ) {
echo "<li>$page</li>";
}
echo '</ul>';
}
}
?>

لینک به ارسال

خب این تابع اصلا هیچ خروجی رو به صورت return بر نمیگردونه که بخواد چک کنه صقحه ای وجود داره یا نه .

  • امتیاز 1
لینک به ارسال

این تابع خودش در صورت داشتن صفحه بعدی اجرا می شه شما باید تابعتون رو به قالب دلخواه تغییر بدید


<?php
function wp_pagination() {
global $wp_query;
$big = 12345678;
$page_format = paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages,
'type' => 'array'
) );
if( is_array($page_format) ) {
$paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
echo '<section class="section wow fadeIn">';
echo '<div class="box">';
echo '<div class="pagination">';
echo '<ul>';
echo '<li id="max-paged"><span>صفحه '. $paged . ' از ' . $wp_query->max_num_pages .'</span></li>';
foreach ( $page_format as $page ) {
echo "<li>$page</li>";
}
echo '</ul>';
echo '</div>';
echo '</div>';
echo '</section>';

}
}
?>

و در محل نمایش


<?php wp_pagination(''); ?>

خودش در صورت وجود صفحه بعد نمایش داده می شه

  • امتیاز 3
لینک به ارسال

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

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



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