This plugin splits your page into parts of approximately x bytes in a way that paragraphs are never split.



Download the plugin from and unzip it to the plugins directory of your GetSimple installation.

To enable fancy URLs, put the following line into gsconfig.php


and add a rule like the following in the root .htaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+);(\d+)/?$ index.php?id=$1&page=$2 [QSA,L]

Fancy URLs will not work on the home page.


To use it, either

  • specify a tag/keyword _pagify x for your page, where x is the approximate size in bytes, or
  • (1.1+) specify a tag/keyword _pagify to split the page on horizontal rules (hr) - in this case you should add the 'HorizontalRule'-Button to your CKEditor configuration - or
  • call the function pagify_set_size(x) in your template.

You can also add a unit to x, e.g. 1000 or 1000b (1000 bytes), 20w (20 words),
100c (100 characters), 3p (3 paragraphs = top level tags).

To set the maximum number of page links in the page navigation, you can use the second parameter of pagify_set_size, e.g. pagify_set_size(null, 9).

To see the full content, add a parameter complete to your page's URL.

If you use get_i18n_content('myslug') or getPageContent('myslug') to include content for a sidebar or similar, make sure to surround it with pagify_off() and pagify_on():


If you would rather use a custom or special field instead of a keyword, you can create a dropdown box field, e.g. named pagify with two options no and yes, and then replace in your content <?php get_page_content(); ?> with e.g. (paging every 2 paragraphs):

  if (return_custom_field('pagify') == 'yes') {
    $pageNum = isset($_GET['page']) ? @((int) $_GET['page']) - 1 : 0;
    echo return_pagify_content(strip_decode($content),'2p',$pageNum); 
  } else {


To change the navigation texts (e.g. "First page" instead of "|<<"), edit the respective language file(s) in /plugins/pagify/lang. The easiest way to do this is to use the Translate plugin.

To change the appearance of the navigation, add style rules like the following to your theme's CSS file:

.paging { ... }
.paging span { ... }
.paging span.first { ... }
.paging span.previous { ... }
.paging span.current { ... }
.paging { ... }
.paging span.last { ... }
.paging span.inactive { ... }

Use within other Plugins

You can use code like the following - its really easy:

# this is the content of the news item, as it would be output to the page:
$content = ...;
# determine somehow (e.g. configuration setting), if page splitting is requested
if (function_exists('return_pagify_content') && ...) {
  # get page number from URL, e.g.
  $pageNum = @$_GET['page'];
  # determine requested page length (e.g. configuration setting)
  $pageSize = ...;
  # what is the link to this news/blog item? Include place holder %PAGE% for page number
  $link = 'http://server/link/to/my/news/item?page=%PAGE%';
  # split content into pages and get content for current page with page navigation
  $content = return_pagify_content($content, $pageSize, $pageNum, $link);