رفتن به مطلب

صفحه بندی آرشیو نظرات


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

با سلام خدمت اساتید در یه صفحه با استفاده از کدهای زیر آخرین نظرات خوانندگان را نمایش میده با توجه به اینکه این کدها فقط 50 نظر آخر را نشون میده میخوام صفحه بندی بشه و در هر صفحه 50 نظر را نشون بده ولی کد صفحه بندی را قرار میدم باز هم صفحه بندی نمیشه لطفا راهنمایی نمائید


<?php
/*Template Name: arcomments */?>
<?php get_header(); ?>

<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,100) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
ORDER BY comment_date_gmt DESC
LIMIT 50";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
$output .= "\n<ol class='commentlist'>";
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->comment_author)
."<font color='blue'> گفته: </font><br>". "<a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"لینک مستقیم به مطلب " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a><font color='red'> ادامه . . .</font><br></li><br>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;?>
<?php if(function_exists('the_views')) { the_views(); } ?>
</div></div>
<?php get_footer(); ?>

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

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

بهتره طبق مستندات انجام بدید استاندارد هم هست.

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

تست کنید:


<?php
/*Template Name: arcomments */?>
<?php get_header(); ?>
<?php
global $wpdb;
$items_per_page = 50;
$get = array();
$get['pag'] = '%#%';
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,100) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''";
$sql2 = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,100) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
ORDER BY comment_date_gmt DESC";
$total = count($wpdb->get_results($sql));
$page = isset( $_GET['pag'] ) ? abs( (int) $_GET['pag'] ) : 1;
$offset = ( $page * $items_per_page ) - $items_per_page;
$comments = $wpdb->get_results( $sql2 . " LIMIT ${offset}, ${items_per_page}" );
$output = $pre_HTML;
$output .= "\n<ol class='commentlist'>";
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->comment_author)
."<font color='blue'> گفته: </font><br>". "<a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"لینک مستقیم به مطلب " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a><font color='red'> ادامه . . .</font><br></li><br>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;
echo paginate_links( array(
'base' => add_query_arg( $get ),
'format' => '',
'prev_text' => __('«'),
'next_text' => __('»'),
'total' => ceil($total / $items_per_page),
'current' => $page
));
?>
<?php if(function_exists('the_views')) { the_views(); } ?>
</div></div>
<?php get_footer(); ?>

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

تست کنید:


<?php
/*Template Name: arcomments */?>
<?php get_header(); ?>
<?php
global $wpdb;
$items_per_page = 50;
$get = array();
$get['pag'] = '%#%';
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,100) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''";
$sql2 = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,100) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
ORDER BY comment_date_gmt DESC";
$total = count($wpdb->get_results($sql));
$page = isset( $_GET['pag'] ) ? abs( (int) $_GET['pag'] ) : 1;
$offset = ( $page * $items_per_page ) - $items_per_page;
$comments = $wpdb->get_results( $sql2 . " LIMIT ${offset}, ${items_per_page}" );
$output = $pre_HTML;
$output .= "\n<ol class='commentlist'>";
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->comment_author)
."<font color='blue'> گفته: </font><br>". "<a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"لینک مستقیم به مطلب " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a><font color='red'> ادامه . . .</font><br></li><br>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;
echo paginate_links( array(
'base' => add_query_arg( $get ),
'format' => '',
'prev_text' => __('«'),
'next_text' => __('»'),
'total' => ceil($total / $items_per_page),
'current' => $page
));
?>
<?php if(function_exists('the_views')) { the_views(); } ?>
</div></div>
<?php get_footer(); ?>

با تشکر از راه حلی که ارائه نمودید

آیا امکان داره تعداد صفحاتی که الان نشون میده بصورت 1 2 3 … 21 » را تغییر دهم مثلا بجای این 4 تا 15 تا بزارم یعنی نمایش ظاهریش از 1 تا 15بعد سه نقطه 21

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 … 21 »

و اگه امکان داره وسط بمونه نه سمت چپ

ممنون و موفق باشید

لینک به ارسال

http://codex.wordpress.org/Function_Reference/paginate_links

خواص show_all - end_size - mid_size

ممنون حل شد فقط مونده واسش css تعریف کنم

راستی الان از گوشه سمت راست شروع میشه بخوام وسط صفحه بمونه چیکار کنم ؟

لینک به ارسال

باید با تغییر استایلالمان این بخش تغییر بدید

اگر توی یک div هست بهش text-align: center بدید

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

باید با تغییر استایلالمان این بخش تغییر بدید

اگر توی یک div هست بهش text-align: center بدید

آقا مرتضی ممنون ولی جوابهایی که میدین واسه حرفه ای هاست نه مبتدی موفق باشید :)

لینک به ارسال

خیلی ساده بود! ببینید این صفحه بندی توی المانی هست مثلا div یا همچین چیزی

کافیه به اون المان استایل بدید که بالاتر گفتم.

دیگه خیلی ساده بود :)

  • امتیاز 4
لینک به ارسال
  • 2 هفته بعد...

خیلی ساده بود! ببینید این صفحه بندی توی المانی هست مثلا div یا همچین چیزی

کافیه به اون المان استایل بدید که بالاتر گفتم.

دیگه خیلی ساده بود :)

نه توی div نیستش !!!!! :rolleyes:

لینک به ارسال

خوب خودتون بزارید توی یک div و بعد بهش براساس اون استایل بدید.

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


<?php
/*Template Name: archive comments */?>
<?php get_header(); ?>
<div class="right"><?php include (TEMPLATEPATH . '/side-right.php'); ?></div>
<div class="center"><div id="center">
<div class="ads-top"><?php include (TEMPLATEPATH . '/ads-down.php'); ?></div>
<div class="center-block">
<div class="title"><div id="matn">نظرات شما خوانندگان محترم</div></div>
<div id="padd">
<?php
global $wpdb;
$items_per_page = 50;
$get = array();
$get['pag'] = '%#%';
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,100) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''";
$sql2 = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,100) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
ORDER BY comment_date_gmt DESC";
$total = count($wpdb->get_results($sql));
$page = isset( $_GET['pag'] ) ? abs( (int) $_GET['pag'] ) : 1;
$offset = ( $page * $items_per_page ) - $items_per_page;
$comments = $wpdb->get_results( $sql2 . " LIMIT ${offset}, ${items_per_page}" );
$output = $pre_HTML;
$output .= "\n<ol class='commentlist'>";
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->comment_author)
."<font color='blue'> گفته: </font><br>". "<a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"لینک مستقیم به مطلب " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a><font color='red'> ادامه . . .</font><br></li><br>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;
echo paginate_links( array(
'base' => add_query_arg( $get ),
'format' => '/page/%#%',
'show_all' => False,
'end_size' => 1,
'mid_size' => 10,
'prev_text' => __('« صفحه قبلی'),
'next_text' => __('صفحه بعدی »'),
'total' => ceil($total / $items_per_page),
'current' => $page

));
?>
<br></br>
<?php if(function_exists('the_views')) { the_views(); } ?>
</div></div>
<?php include (TEMPLATEPATH . '/lastpost.php'); ?>
<?php include (TEMPLATEPATH . '/gallery.php'); ?>
</div></div>
<div class="left"><?php include (TEMPLATEPATH . '/side-left.php'); ?></div>
<?php get_footer(); ?>

کد بالا کد نهایی که استفاده کردم

ولی مشکلی بوجود اومده

اونم اینکه وقتی مثلا میزنم صفحه 3

دیگه هر صفحه ای را میزنم باز هم همون صفحه 3 را نشون میده

یعنی فقط یک بار میتونی یک صفحه را انتخاب کنی بعد از انتخاب هر صفحه دیگه کد کار نمیکنه

ممنون

لینک به ارسال

در این خط


$page = isset( $_GET['pag'] ) ? abs( (int) $_GET['pag'] ) : 1;

حرف e آخر page ها افتاده تصحیح و چک کنید

مرسی از پاسخگویی

درست شد ولی صفحه 1 2 3 4 5 6 7 8 9 10 11 .....52 میزنه

وقتی صفحه 11 را انتخاب میکنی صفحه 11 باز میشه ولی بعد 10 صفحه بعدی را نشون نمیده که انتخاب کنی باز هم بصورت زیر نمایش میده

1 2 3 4 5 6 7 8 9 10 11 .....52

لینک به ارسال

این بخش کد را


echo paginate_links( array(
'base' => add_query_arg( $get ),
'format' => '/page/%#%',
'show_all' => False,
'end_size' => 1,
'mid_size' => 10,
'prev_text' => __('« صفحه قبلی'),
'next_text' => __('صفحه بعدی »'),
'total' => ceil($total / $items_per_page),
'current' => $page

));

اینطوری ویرایش کنید


$mid_size = $page+10;
$the_total = ceil($total / $items_per_page);
if($mid_size >= $the_total) {
$mid_size = $the_total;
}

echo paginate_links( array(
'base' => add_query_arg( $get ),
'format' => '/page/%#%',
'show_all' => False,
'end_size' => $page,
'mid_size' => $mid_size,
'prev_text' => __('« صفحه قبلی'),
'next_text' => __('صفحه بعدی »'),
'total' => $the_total,
'current' => $page

));

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

این بخش کد را


echo paginate_links( array(
'base' => add_query_arg( $get ),
'format' => '/page/%#%',
'show_all' => False,
'end_size' => 1,
'mid_size' => 10,
'prev_text' => __('« صفحه قبلی'),
'next_text' => __('صفحه بعدی »'),
'total' => ceil($total / $items_per_page),
'current' => $page

));

اینطوری ویرایش کنید


$mid_size = $page+10;
$the_total = ceil($total / $items_per_page);
if($mid_size >= $the_total) {
$mid_size = $the_total;
}

echo paginate_links( array(
'base' => add_query_arg( $get ),
'format' => '/page/%#%',
'show_all' => False,
'end_size' => $page,
'mid_size' => $mid_size,
'prev_text' => __('« صفحه قبلی'),
'next_text' => __('صفحه بعدی »'),
'total' => $the_total,
'current' => $page

));

هیچ تغییری نکرد :(

لینک به ارسال

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

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



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