WP-Paginate - Version 1.1

Version Description

  • Added wp_paginate_comments() function for pagination of post comments
Download this release

Release Info

Developer emartin24
Plugin Icon 128x128 WP-Paginate
Version 1.1
Comparing to
See all releases

Code changes from version 1.0.1 to 1.1

Files changed (4) hide show
  1. I18n/wp-paginate.pot +39 -42
  2. readme.txt +52 -13
  3. wp-paginate.css +2 -2
  4. wp-paginate.php +73 -42
I18n/wp-paginate.pot CHANGED
@@ -6,9 +6,9 @@
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
- "Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-paginate\n"
11
- "POT-Creation-Date: 2009-09-09 02:54+0000\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,157 +16,154 @@ msgstr ""
16
"Content-Type: text/plain; charset=CHARSET\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
- #: wp-paginate.php:237
20
msgid "Settings"
21
msgstr ""
22
23
- #: wp-paginate.php:262
24
msgid "Success! Your changes were successfully saved!"
25
msgstr ""
26
27
- #: wp-paginate.php:265
28
msgid "Whoops! There was a problem with the data you posted. Please try again."
29
msgstr ""
30
31
- #: wp-paginate.php:277
32
msgid "Pagination Text:"
33
msgstr ""
34
35
- #: wp-paginate.php:279
36
msgid "The text to display before the list of pages."
37
msgstr ""
38
39
- #: wp-paginate.php:282
40
msgid "Previous Page Text:"
41
msgstr ""
42
43
- #: wp-paginate.php:284
44
msgid "The text to display for the previous page link."
45
msgstr ""
46
47
- #: wp-paginate.php:287
48
msgid "Next Page Text:"
49
msgstr ""
50
51
- #: wp-paginate.php:289
52
msgid "The text to display for the next page link."
53
msgstr ""
54
55
- #: wp-paginate.php:293
56
msgid "Advanced Settings"
57
msgstr ""
58
59
- #: wp-paginate.php:296
60
msgid "Before Markup:"
61
msgstr ""
62
63
- #: wp-paginate.php:298
64
msgid "The HTML markup to display before the pagination code."
65
msgstr ""
66
67
- #: wp-paginate.php:301
68
msgid "After Markup:"
69
msgstr ""
70
71
- #: wp-paginate.php:303
72
msgid "The HTML markup to display after the pagination code."
73
msgstr ""
74
75
- #: wp-paginate.php:306
76
msgid "Markup Display:"
77
msgstr ""
78
79
- #: wp-paginate.php:308
80
msgid "Always show Markup, even when the page list is empty?"
81
msgstr ""
82
83
- #: wp-paginate.php:311
84
msgid "CSS File:"
85
msgstr ""
86
87
- #: wp-paginate.php:313
88
msgid "Deselect this option to prevent loading wp-paginate.css."
89
msgstr ""
90
91
- #: wp-paginate.php:316
92
msgid "Page Range:"
93
msgstr ""
94
95
- #: wp-paginate.php:323
96
msgid ""
97
"The number of page links to show before and after the current page. "
98
"Recommended value: 3"
99
msgstr ""
100
101
- #: wp-paginate.php:326
102
msgid "Page Anchors:"
103
msgstr ""
104
105
- #: wp-paginate.php:333
106
msgid ""
107
"The number of links to always show at beginning and end of pagination. "
108
"Recommended value: 1"
109
msgstr ""
110
111
- #: wp-paginate.php:336
112
msgid "Page Gap:"
113
msgstr ""
114
115
- #: wp-paginate.php:343
116
msgid ""
117
"The minimum number of pages in a gap before ellipses (...) are added. "
118
"Recommended value: 3"
119
msgstr ""
120
121
- #: wp-paginate.php:350
122
msgid "Need Support?"
123
msgstr ""
124
125
- #: wp-paginate.php:351
126
msgid ""
127
"For questions, issues or feature requests, please post them in the %s and "
128
"make sure to tag the post with wp-paginate."
129
msgstr ""
130
131
- #: wp-paginate.php:352
132
msgid "Like To Contribute?"
133
msgstr ""
134
135
- #: wp-paginate.php:353
136
msgid ""
137
"If you would like to contribute, the following is a list of ways you can "
138
"help:"
139
msgstr ""
140
141
- #: wp-paginate.php:355
142
msgid "Translate WP-Paginate into your language"
143
msgstr ""
144
145
- #: wp-paginate.php:356
146
msgid "Blog about or link to WP-Paginate so others can find out about it"
147
msgstr ""
148
149
- #: wp-paginate.php:357
150
msgid "Report issues, provide feedback, request features, etc."
151
msgstr ""
152
153
- #: wp-paginate.php:358
154
msgid "Rate WP-Paginate on the WordPress Plugins Page"
155
msgstr ""
156
157
- #: wp-paginate.php:359
158
msgid "Make a donation"
159
msgstr ""
160
161
- #: wp-paginate.php:361
162
msgid "Other Links"
163
msgstr ""
164
165
- #: wp-paginate.php:364
166
- msgid "My Blog"
167
- msgstr ""
168
-
169
#. Description of an extension
170
- msgid "A simple and flexible pagination plugin for WordPress."
171
msgstr ""
172
-
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
+ "Project-Id-Version: 1.1\n"
10
"Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-paginate\n"
11
+ "POT-Creation-Date: 2009-09-10 03:50+0000\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
16
"Content-Type: text/plain; charset=CHARSET\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
+ #: wp-paginate.php:253
20
msgid "Settings"
21
msgstr ""
22
23
+ #: wp-paginate.php:278
24
msgid "Success! Your changes were successfully saved!"
25
msgstr ""
26
27
+ #: wp-paginate.php:281
28
msgid "Whoops! There was a problem with the data you posted. Please try again."
29
msgstr ""
30
31
+ #: wp-paginate.php:293
32
msgid "Pagination Text:"
33
msgstr ""
34
35
+ #: wp-paginate.php:295
36
msgid "The text to display before the list of pages."
37
msgstr ""
38
39
+ #: wp-paginate.php:298
40
msgid "Previous Page Text:"
41
msgstr ""
42
43
+ #: wp-paginate.php:300
44
msgid "The text to display for the previous page link."
45
msgstr ""
46
47
+ #: wp-paginate.php:303
48
msgid "Next Page Text:"
49
msgstr ""
50
51
+ #: wp-paginate.php:305
52
msgid "The text to display for the next page link."
53
msgstr ""
54
55
+ #: wp-paginate.php:309
56
msgid "Advanced Settings"
57
msgstr ""
58
59
+ #: wp-paginate.php:312
60
msgid "Before Markup:"
61
msgstr ""
62
63
+ #: wp-paginate.php:314
64
msgid "The HTML markup to display before the pagination code."
65
msgstr ""
66
67
+ #: wp-paginate.php:317
68
msgid "After Markup:"
69
msgstr ""
70
71
+ #: wp-paginate.php:319
72
msgid "The HTML markup to display after the pagination code."
73
msgstr ""
74
75
+ #: wp-paginate.php:322
76
msgid "Markup Display:"
77
msgstr ""
78
79
+ #: wp-paginate.php:324
80
msgid "Always show Markup, even when the page list is empty?"
81
msgstr ""
82
83
+ #: wp-paginate.php:327
84
msgid "CSS File:"
85
msgstr ""
86
87
+ #: wp-paginate.php:329
88
msgid "Deselect this option to prevent loading wp-paginate.css."
89
msgstr ""
90
91
+ #: wp-paginate.php:332
92
msgid "Page Range:"
93
msgstr ""
94
95
+ #: wp-paginate.php:339
96
msgid ""
97
"The number of page links to show before and after the current page. "
98
"Recommended value: 3"
99
msgstr ""
100
101
+ #: wp-paginate.php:342
102
msgid "Page Anchors:"
103
msgstr ""
104
105
+ #: wp-paginate.php:349
106
msgid ""
107
"The number of links to always show at beginning and end of pagination. "
108
"Recommended value: 1"
109
msgstr ""
110
111
+ #: wp-paginate.php:352
112
msgid "Page Gap:"
113
msgstr ""
114
115
+ #: wp-paginate.php:359
116
msgid ""
117
"The minimum number of pages in a gap before ellipses (...) are added. "
118
"Recommended value: 3"
119
msgstr ""
120
121
+ #: wp-paginate.php:366
122
msgid "Need Support?"
123
msgstr ""
124
125
+ #: wp-paginate.php:367
126
+ #, php-format
127
msgid ""
128
"For questions, issues or feature requests, please post them in the %s and "
129
"make sure to tag the post with wp-paginate."
130
msgstr ""
131
132
+ #: wp-paginate.php:368
133
msgid "Like To Contribute?"
134
msgstr ""
135
136
+ #: wp-paginate.php:369
137
msgid ""
138
"If you would like to contribute, the following is a list of ways you can "
139
"help:"
140
msgstr ""
141
142
+ #: wp-paginate.php:371
143
msgid "Translate WP-Paginate into your language"
144
msgstr ""
145
146
+ #: wp-paginate.php:372
147
msgid "Blog about or link to WP-Paginate so others can find out about it"
148
msgstr ""
149
150
+ #: wp-paginate.php:373
151
msgid "Report issues, provide feedback, request features, etc."
152
msgstr ""
153
154
+ #: wp-paginate.php:374
155
msgid "Rate WP-Paginate on the WordPress Plugins Page"
156
msgstr ""
157
158
+ #: wp-paginate.php:375
159
msgid "Make a donation"
160
msgstr ""
161
162
+ #: wp-paginate.php:377
163
msgid "Other Links"
164
msgstr ""
165
166
#. Description of an extension
167
+ msgid ""
168
+ "A simple and flexible pagination plugin for WordPress posts and comments."
169
msgstr ""
readme.txt CHANGED
@@ -1,18 +1,20 @@
1
=== WP-Paginate ===
2
Contributors: emartin24
3
Donate link: http://www.ericmmartin.com/donate/
4
- Tags: paginate, pagination, navigation, page, wp-paginate
5
- Requires at least: 2.2.0
6
Tested up to: 2.8.4
7
- Stable tag: 1.0.1
8
9
- WP-Paginate is a simple and flexible pagination plugin which provides users with better navigation for your WordPress site.
10
11
== Description ==
12
13
- WP-Paginate is a simple and flexible pagination plugin which provides users with better navigation for your WordPress site.
14
15
- In addition to increasing the usability for your visitors, it has also been widely reported that pagination increases the SEO of your site by providing more links to your content.
16
17
== Installation ==
18
@@ -24,14 +26,23 @@ In addition to increasing the usability for your visitors, it has also been wide
24
25
*Implement*
26
27
- 1) Open the theme files where you'd like pagination to be used. Usually this is the index.php, archive.php and search.php
28
29
2) Replace your existing `previous_posts_link()` and `next_posts_link()` code block with the following:
30
31
- <?php if(function_exists("wp_paginate")) {
32
wp_paginate();
33
} ?>
34
35
36
*Configure*
37
@@ -49,7 +60,7 @@ In addition to increasing the usability for your visitors, it has also been wide
49
50
= How can I override the default pagination settings? =
51
52
- The `wp_paginate()` function takes one optional argument, in query string format, which allows you to override the global settings. The available options are:
53
54
* title - The text to display before the pagination links
55
* nextpage - The text to use for the next page link
@@ -66,12 +77,37 @@ You can even control the current page and number of pages with:
66
* page - The current page. This function will automatically determine the value
67
* pages - The total number of pages. This function will automatically determine the value
68
69
- Example:
70
71
- <?php if(function_exists("wp_paginate")) {
72
- wp_paginate("range=4&anchor=2&nextpage=Next&previouspage=Previous");
73
} ?>
74
-
75
76
== Screenshots ==
77
@@ -80,6 +116,9 @@ Example:
80
81
== Changelog ==
82
83
= 1.0.1 =
84
* Added I18n folder and wp-paginate.pot file
85
* Fixed some internationalization and spelling errors
1
=== WP-Paginate ===
2
Contributors: emartin24
3
Donate link: http://www.ericmmartin.com/donate/
4
+ Tags: paginate, pagination, navigation, page, wp-paginate, comments
5
+ Requires at least: 2.2.0 (2.7.0 for comments pagination)
6
Tested up to: 2.8.4
7
+ Stable tag: 1.1
8
9
+ WP-Paginate is a simple and flexible pagination plugin which provides users with better navigation on your WordPress site.
10
11
== Description ==
12
13
+ WP-Paginate is a simple and flexible pagination plugin which provides users with better navigation on your WordPress site.
14
15
+ In addition to increasing the user experience for your visitors, it has also been widely reported that pagination increases the SEO of your site by providing more links to your content.
16
+
17
+ Starting in version 1.1, WP-Paginate can be used to paginate posts as well as post comments!
18
19
== Installation ==
20
26
27
*Implement*
28
29
+ For posts pagination:
30
+ 1) Open the theme files where you'd like pagination to be used. Usually this is the index.php, archive.php and search.php files.
31
32
2) Replace your existing `previous_posts_link()` and `next_posts_link()` code block with the following:
33
34
+ <?php if(function_exists('wp_paginate')) {
35
wp_paginate();
36
} ?>
37
38
+ For comments pagination:
39
+ 1) Open the theme file(s) where you'd like comments pagination to be used. Usually this is the comments.php file.
40
+
41
+ 2) Replace your existing `previous_comments_link()` and `next_comments_link()` code block with the following:
42
+
43
+ <?php if(function_exists('wp_paginate_comments')) {
44
+ wp_paginate_comments();
45
+ } ?>
46
47
*Configure*
48
60
61
= How can I override the default pagination settings? =
62
63
+ The `wp_paginate()` and `wp_paginate_comments()` functions each takes one optional argument, in query string format, which allows you to override the global settings. The available options are:
64
65
* title - The text to display before the pagination links
66
* nextpage - The text to use for the next page link
77
* page - The current page. This function will automatically determine the value
78
* pages - The total number of pages. This function will automatically determine the value
79
80
+ Example (also applies to `wp_paginate_comments()`):
81
+
82
+ <?php if(function_exists('wp_paginate')) {
83
+ wp_paginate('range=4&anchor=2&nextpage=Next&previouspage=Previous');
84
+ } ?>
85
+
86
+ = How can I style the comments pagination differently than the posts pagination? =
87
88
+ There are a number of ways to do this, but basically, you'll want to override the default styles.
89
+
90
+ For example, you could do the following:
91
+
92
+ 1) Modify the `wp_paginate_comments()` call:
93
+
94
+ <?php if(function_exists('wp_paginate_comments')) {
95
+ wp_paginate_comments('before=<div class="wp-paginate-comments">');
96
} ?>
97
+
98
+ 2) Add CSS to override the default element styles:
99
+
100
+ .wp-paginate-comments {}
101
+ .wp-paginate-comments ol {}
102
+ .wp-paginate-comments li {}
103
+ .wp-paginate-comments a {}
104
+ .wp-paginate-comments a:hover, .wp-paginate-comments a:active {}
105
+ .wp-paginate-comments .title {}
106
+ .wp-paginate-comments .gap {}
107
+ .wp-paginate-comments .current {}
108
+ .wp-paginate-comments .page {}
109
+ .wp-paginate-comments .prev, .wp-paginate .next {}
110
+
111
112
== Screenshots ==
113
116
117
== Changelog ==
118
119
+ = 1.1 =
120
+ * Added `wp_paginate_comments()` function for pagination of post comments
121
+
122
= 1.0.1 =
123
* Added I18n folder and wp-paginate.pot file
124
* Fixed some internationalization and spelling errors
wp-paginate.css CHANGED
@@ -1,7 +1,7 @@
1
/*
2
* WP-Paginate - WordPress Pagination Function
3
- * Revision: $Id$
4
- * Copyright (c) 2009 Eric Martin http://www.ericmmartin.com/
5
*/
6
.wp-paginate {}
7
.wp-paginate ol {padding:0; margin:0;}
1
/*
2
* WP-Paginate - WordPress Pagination Function
3
+ * Revision: $Id: wp-paginate.css 153392 2009-09-09 23:28:27Z emartin24 $
4
+ * Copyright (c) 2009 Eric Martin http://www.ericmmartin.com/projects/wp-paginate/
5
*/
6
.wp-paginate {}
7
.wp-paginate ol {padding:0; margin:0;}
wp-paginate.php CHANGED
@@ -2,10 +2,11 @@
2
/*
3
Plugin Name: WP-Paginate
4
Plugin URI: http://www.ericmmartin.com/projects/wp-paginate/
5
- Description: A simple and flexible pagination plugin for WordPress.
6
Author: Eric Martin
7
- Version: 1.0.1
8
Author URI: http://www.ericmmartin.com
9
*/
10
11
/* Copyright 2009 Eric Martin (eric@ericmmartin.com)
@@ -26,9 +27,8 @@ Author URI: http://www.ericmmartin.com
26
*/
27
28
/**
29
- * Set the wp-content and plugin urls/paths
30
- */
31
- // Pre-2.6 compatibility
32
if (!defined('WP_CONTENT_URL'))
33
define('WP_CONTENT_URL', get_option('siteurl') . '/wp-content');
34
if (!defined('WP_CONTENT_DIR'))
@@ -40,22 +40,21 @@ if (!defined('WP_PLUGIN_DIR') )
40
41
if (!class_exists('WPPaginate')) {
42
class WPPaginate {
43
- var $version = '1.0.1';
44
-
45
- //This is where the class variables go, don't forget to use @var to tell what they're for
46
/**
47
- * @var string The options string name for this plugin
48
- */
49
var $optionsName = 'wp_paginate_options';
50
51
/**
52
- * @var string $localizationDomain Domain used for localization
53
- */
54
- var $localizationDomain = "wp_paginate";
55
56
/**
57
- * @var string $pluginurl The url to this plugin
58
- */
59
var $pluginurl = '';
60
/**
61
* @var string $pluginpath The path to this plugin
@@ -63,19 +62,20 @@ if (!class_exists('WPPaginate')) {
63
var $pluginpath = '';
64
65
/**
66
- * @var array $options Stores the options for this plugin
67
- */
68
var $options = array();
69
70
- //Class Functions
71
/**
72
- * PHP 4 Compatible Constructor
73
- */
74
function WPPaginate() {$this->__construct();}
75
76
/**
77
- * PHP 5 Constructor
78
- */
79
function __construct() {
80
$name = dirname(plugin_basename(__FILE__));
81
@@ -99,19 +99,35 @@ if (!class_exists('WPPaginate')) {
99
/**
100
* Pagination based on options/args
101
*/
102
- function paginate($args = false) {
103
$r = wp_parse_args($args, $this->options);
104
extract($r, EXTR_SKIP);
105
106
if (!isset($page) && !isset($pages)) {
107
global $wp_query;
108
-
109
- $page = get_query_var('paged');
110
$page = !empty($page) ? intval($page) : 1;
111
-
112
- $posts_per_page = intval(get_query_var('posts_per_page'));
113
- $pages = intval(ceil($wp_query->found_posts / $posts_per_page));
114
}
115
116
$output = stripslashes($before);
117
if ($pages > 1) {
@@ -119,7 +135,7 @@ if (!class_exists('WPPaginate')) {
119
$ellipsis = "<li><span class='gap'>...</span></li>";
120
121
if ($page > 1 && !empty($previouspage)) {
122
- $output .= "<li><a href='" . get_pagenum_link($page - 1) . "' class='prev'>$previouspage</a></li>";
123
}
124
125
$min_links = $range * 2 + 1;
@@ -156,7 +172,7 @@ if (!class_exists('WPPaginate')) {
156
}
157
158
if ($page < $pages && !empty($nextpage)) {
159
- $output .= "<li><a href='" . get_pagenum_link($page + 1) . "' class='next'>$nextpage</a></li>";
160
}
161
$output .= "</ol>";
162
}
@@ -173,7 +189,7 @@ if (!class_exists('WPPaginate')) {
173
function paginate_loop($start, $max, $page = 0) {
174
$output = "";
175
for ($i = $start; $i <= $max; $i++) {
176
- $p = get_pagenum_link($i);
177
$output .= ($page == intval($i))
178
? "<li><span class='page current'>$i</span></li>"
179
: "<li><a href='$p' title='$i' class='page'>$i</a></li>";
@@ -194,9 +210,9 @@ if (!class_exists('WPPaginate')) {
194
}
195
196
/**
197
- * Retrieves the plugin options from the database.
198
- * @return array
199
- */
200
function get_options() {
201
if (!$options = get_option($this->optionsName)) {
202
$options = array(
@@ -216,23 +232,23 @@ if (!class_exists('WPPaginate')) {
216
$this->options = $options;
217
}
218
/**
219
- * Saves the admin options to the database.
220
- */
221
function save_admin_options(){
222
return update_option($this->optionsName, $this->options);
223
}
224
225
/**
226
- * @desc Adds the options subpanel
227
- */
228
function admin_menu_link() {
229
add_options_page('WP-Paginate', 'WP-Paginate', 10, basename(__FILE__), array(&$this, 'admin_options_page'));
230
add_filter('plugin_action_links_' . plugin_basename(__FILE__), array(&$this, 'filter_plugin_actions'), 10, 2 );
231
}
232
233
/**
234
- * @desc Adds the Settings link to the plugin activate/deactivate page
235
- */
236
function filter_plugin_actions($links, $file) {
237
$settings_link = '<a href="options-general.php?page=' . basename(__FILE__) . '">' . __('Settings', $this->localizationDomain) . '</a>';
238
array_unshift($links, $settings_link); // before other links
@@ -241,8 +257,8 @@ if (!class_exists('WPPaginate')) {
241
}
242
243
/**
244
- * Adds settings/options page
245
- */
246
function admin_options_page() {
247
if (isset($_POST['wp_paginate_save'])) {
248
if (wp_verify_nonce($_POST['_wpnonce'], 'wp-paginate-update-options')) {
@@ -376,10 +392,25 @@ if (class_exists('WPPaginate')) {
376
$wp_paginate = new WPPaginate();
377
}
378
379
function wp_paginate($args = false) {
380
global $wp_paginate;
381
return $wp_paginate->paginate($args);
382
}
383
384
385
?>
2
/*
3
Plugin Name: WP-Paginate
4
Plugin URI: http://www.ericmmartin.com/projects/wp-paginate/
5
+ Description: A simple and flexible pagination plugin for WordPress posts and comments.
6
Author: Eric Martin
7
+ Version: 1.1
8
Author URI: http://www.ericmmartin.com
9
+ Revision: $Id: wp-paginate.php 153392 2009-09-09 23:28:27Z emartin24 $
10
*/
11
12
/* Copyright 2009 Eric Martin (eric@ericmmartin.com)
27
*/
28
29
/**
30
+ * Set the wp-content and plugin urls/paths
31
+ */
32
if (!defined('WP_CONTENT_URL'))
33
define('WP_CONTENT_URL', get_option('siteurl') . '/wp-content');
34
if (!defined('WP_CONTENT_DIR'))
40
41
if (!class_exists('WPPaginate')) {
42
class WPPaginate {
43
+ var $version = '1.1';
44
+
45
/**
46
+ * @var string The options string name for this plugin
47
+ */
48
var $optionsName = 'wp_paginate_options';
49
50
/**
51
+ * @var string $localizationDomain Domain used for localization
52
+ */
53
+ var $localizationDomain = 'wp_paginate';
54
55
/**
56
+ * @var string $pluginurl The url to this plugin
57
+ */
58
var $pluginurl = '';
59
/**
60
* @var string $pluginpath The path to this plugin
62
var $pluginpath = '';
63
64
/**
65
+ * @var array $options Stores the options for this plugin
66
+ */
67
var $options = array();
68
+
69
+ var $type = 'posts';
70
71
/**
72
+ * PHP 4 Compatible Constructor
73
+ */
74
function WPPaginate() {$this->__construct();}
75
76
/**
77
+ * PHP 5 Constructor
78
+ */
79
function __construct() {
80
$name = dirname(plugin_basename(__FILE__));
81
99
/**
100
* Pagination based on options/args
101
*/
102
+ function paginate($args = false) {
103
+ if ($this->type === 'comments' && !get_option('page_comments'))
104
+ return;
105
+
106
$r = wp_parse_args($args, $this->options);
107
extract($r, EXTR_SKIP);
108
109
if (!isset($page) && !isset($pages)) {
110
global $wp_query;
111
+
112
+ if ($this->type === 'posts') {
113
+ $page = get_query_var('paged');
114
+ $posts_per_page = intval(get_query_var('posts_per_page'));
115
+ $pages = intval(ceil($wp_query->found_posts / $posts_per_page));
116
+ }
117
+ else {
118
+ $page = get_query_var('cpage');
119
+ $posts_per_page = get_option('comments_per_page');
120
+ $pages = intval(ceil($wp_query->comment_count / $posts_per_page));
121
+ }
122
$page = !empty($page) ? intval($page) : 1;
123
}
124
+
125
+ $prevlink = ($this->type === 'posts')
126
+ ? get_pagenum_link($page - 1)
127
+ : get_comments_pagenum_link($page - 1);
128
+ $nextlink = ($this->type === 'posts')
129
+ ? get_pagenum_link($page + 1)
130
+ : get_comments_pagenum_link($page + 1);
131
132
$output = stripslashes($before);
133
if ($pages > 1) {
135
$ellipsis = "<li><span class='gap'>...</span></li>";
136
137
if ($page > 1 && !empty($previouspage)) {
138
+ $output .= "<li><a href='$prevlink' class='prev'>$previouspage</a></li>";
139
}
140
141
$min_links = $range * 2 + 1;
172
}
173
174
if ($page < $pages && !empty($nextpage)) {
175
+ $output .= "<li><a href='$nextlink' class='next'>$nextpage</a></li>";
176
}
177
$output .= "</ol>";
178
}
189
function paginate_loop($start, $max, $page = 0) {
190
$output = "";
191
for ($i = $start; $i <= $max; $i++) {
192
+ $p = ($this->type === 'posts') ? get_pagenum_link($i) : get_comments_pagenum_link($i);
193
$output .= ($page == intval($i))
194
? "<li><span class='page current'>$i</span></li>"
195
: "<li><a href='$p' title='$i' class='page'>$i</a></li>";
210
}
211
212
/**
213
+ * Retrieves the plugin options from the database.
214
+ * @return array
215
+ */
216
function get_options() {
217
if (!$options = get_option($this->optionsName)) {
218
$options = array(
232
$this->options = $options;
233
}
234
/**
235
+ * Saves the admin options to the database.
236
+ */
237
function save_admin_options(){
238
return update_option($this->optionsName, $this->options);
239
}
240
241
/**
242
+ * @desc Adds the options subpanel
243
+ */
244
function admin_menu_link() {
245
add_options_page('WP-Paginate', 'WP-Paginate', 10, basename(__FILE__), array(&$this, 'admin_options_page'));
246
add_filter('plugin_action_links_' . plugin_basename(__FILE__), array(&$this, 'filter_plugin_actions'), 10, 2 );
247
}
248
249
/**
250
+ * @desc Adds the Settings link to the plugin activate/deactivate page
251
+ */
252
function filter_plugin_actions($links, $file) {
253
$settings_link = '<a href="options-general.php?page=' . basename(__FILE__) . '">' . __('Settings', $this->localizationDomain) . '</a>';
254
array_unshift($links, $settings_link); // before other links
257
}
258
259
/**
260
+ * Adds settings/options page
261
+ */
262
function admin_options_page() {
263
if (isset($_POST['wp_paginate_save'])) {
264
if (wp_verify_nonce($_POST['_wpnonce'], 'wp-paginate-update-options')) {
392
$wp_paginate = new WPPaginate();
393
}
394
395
+ /**
396
+ * Pagination function to use for posts
397
+ */
398
function wp_paginate($args = false) {
399
global $wp_paginate;
400
return $wp_paginate->paginate($args);
401
}
402
403
+ /**
404
+ * Pagination function to use for post comments
405
+ */
406
+ function wp_paginate_comments($args = false) {
407
+ global $wp_paginate;
408
+ $wp_paginate->type = 'comments';
409
+ return $wp_paginate->paginate($args);
410
+ }
411
412
+ /*
413
+ * The format of this plugin is based on the following plugin template:
414
+ * http://pressography.com/plugins/wordpress-plugin-template/
415
+ */
416
?>