本帖最後由 pootor 於 2013-5-19 20:16 編輯 % e+ K$ q8 I9 b k& ^, ^
luguokankan 發表於 2013-5-19 20:00 4 U: o( ~) S6 O: T/ ?1 n
你的問題是不是不會搞包含sort參數的 pagination? 加sort參數的分頁可以搞定。4 t# f. h6 z' i) k# i2 H/ ^: M
2 z- e( o0 u1 v* c) I- s0 {. `
不能搞定:不加參數,可以實現用下拉列表實現訪客排序,但是排序不能分頁,訪問第二頁排序就失去作用了。能否解決分頁也能排序(不加參數)?下面的代碼可以實現排序,但不能分頁。- <?php+ }+ j1 g X+ k+ ]
- $order = "&order=DESC";" G; \0 U4 D: U; o# x5 g) |
- if ($_POST['select'] == 'tag') { $order = "&tag=mytag"; }7 C8 p$ Z/ g: z
- if ($_POST['select'] == 'title') { $order = "&order=ASC&orderby=title"; }
6 ~# Z* A( ^: z: F/ m8 E- ` - if ($_POST['select'] == 'newest') { $order = "&order=DESC"; }3 g5 Z p6 b- X9 r" R; N
- if ($_POST['select'] == 'oldest') { $order = "&order=ASC"; }
+ s* I' s2 \4 f9 x8 m5 r - if ($_POST['select'] == 'mcommented') { $order = "&order=DESC&orderby=comment_count"; }& Q3 L' @# u* M) U$ l
- if ($_POST['select'] == 'lcommented') { $order = "&order=ASC&orderby=comment_count"; }$ B4 T$ c) F( s- m" J, `, @
- ?>
* c Y8 y- Y2 D3 s5 i
, Q! Z* M6 b: I n3 s
$ g) D* G$ z- n3 @7 E# c- <form method="post" id="order">
! N& N1 O( y- N& T* Y - Sort reviews by:
3 q% [; I( G( T7 E, @ - <select name="select" onchange='this.form.submit()'>4 {" W* T, g ^
- <option value="tag"<?php selected( $_POST['select'],'tag', 1 ); ?>>Tag</option>( F% Z9 f7 f# V9 w, z. D
- <option value="title"<?php selected( $_POST['select'],'title', 1 ); ?>>Title</option># z, X. [8 T: j, h
- <option value="newest"<?php selected( $_POST['select'],'newest', 1 ); ?>>Newest</option>
2 I0 R/ B2 d0 F" P# m - <option value="oldest"<?php selected( $_POST['select'], 'oldest', 1 ); ?>>Oldest</option>
1 c: s5 A+ J2 {( G1 D* n - <option value="mcommented"<?php selected( $_POST['select'],'mcommented', 1 ); ?>>Most commented</option>+ r$ J& U; V) `9 E! U8 D
- <option value="lcommented"<?php selected( $_POST['select'],'lcommented' , 1 ); ?>>least commented</option>
/ ~5 `+ T7 A! [: J5 Q0 { i - </select>& r$ z% K T( D" V% E
- </form>
# ]2 b4 N6 ^0 e: m5 o9 U - ' t& s3 d2 ?5 P* v* L# ^) _ z5 T- T
- <?php query_posts($query_string . $order); ?>) g# A( B1 h1 y
- <?php if ( have_posts() ) : ?>
5 a: K g/ u' U& l4 E; C - <?php while (have_posts()) : the_post(); ?>
複製代碼 |