sectsect / wp-split-single-page
Supply some functions and Pagination for split single page for each array of custom field without <!--nextpage--> on your template.
Installs: 10
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Type:wordpress-plugin
Requires
- php: >=5.3
README
- For Each Array of custom field -
Supply some functions and Pagination for split single page for each array of custom field without <!--nextpage-->
on your template.
Installation
1. Clone this Repo into your wp-content/plugins
directory.
$ cd /path-to-your/wp-content/plugins/
$ git clone git@github.com:sectsect/wp-split-single-page.git
2. Activate the plugin through the 'Plugins' menu in WordPress.
That's it:ok_hand:
Notes
- Supports
is_preview()
Page. See Usage Example. - Supports Wordpress Plugin Public Post Preview
- Supports Wordpress Plugin CF Preview Fix for Cloudfront :memo: You need to manually add the following two parameters to the URL output by CF Preview Fix.
&post_date=20171231021559&preview_time=20171231021604
functions
single_paginate($args)
Default Arguments
$args = array( 'base' => get_the_permalink() . '%#%/', // (is_preview()) get_the_permalink() . '&paged=%#%' 'format' => get_the_permalink() . '%#%/', // (is_preview()) get_the_permalink() . '&paged=%#%' 'total' => 1, 'current' => 0, 'show_all' => false, 'end_size' => 1, 'mid_size' => 2, 'prev_next' => true, 'prev_text' => __('« Previous'), 'next_text' => __('Next »'), 'type' => 'list', 'add_args' => false, 'add_fragment' => '', 'before_page_number' => '', 'after_page_number' => '', );
TIP: 'base'
and 'format'
Silence is golden 👍
next_single_paged_link($pagecount, $paged, $label, $type)
Parameters
-
pagecount
(integer)
The total number of pages. -
paged
(integer)
The current page number. -
label
(string)
(Optional) Link text to display. Default:'Next'
-
type
(string)
(Optional) Controls format of the returned value. Possible values are:- 'plain' -
<a href="#" rel="next">Next</a>
- 'list' -
<li class="next"><a href="#" rel="next">Next</a></li>
Default:
'plain'
- 'plain' -
add_rel_prev_next_paginated_posts($pagecount)
Parameters
- pagecount
(integer)
The total number of pages.
Usage Example
single.php
NOTE: Split the page by array (w/ Custom Field Suite Plugin).
<head> <?php if ( is_single() && function_exists( 'add_rel_prev_next_paginated_posts' ) ) { add_rel_prev_next_paginated_posts( count ( CFS()->get('page') ) ); } ?> </head> <body> <?php get_header(); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <article> <h1><?php the_title(); ?></h1> <?php if ( is_single_paged( 1 ) ) : ?> <section> The first page only. </section> <?php endif; ?> <?php $pages = CFS()->get('page'); // Get the array of Loop-field $pages = array_values( (array) $pages ); // Reset array Keys if ( ! is_preview() ) { $paged = ( get_query_var('page') ) ? get_query_var('page') : 1; } else { if ( isset( $_GET['paged'] ) ) { $pagenum = (int) wp_unslash( $_GET['paged'] ); } $paged = ( $pagenum ) ? $pagenum : 1; } $pagecount = count( $pages ); $key = $paged - 1; // "-1" For Array's key $page = $pages[$key]; ?> <section> <?php if ( $page['h2'] ) : ?> <h2><?php echo $page['h2']; ?></h2> <?php endif; ?> <?php if ( $page['h3'] ) : ?> <h3><?php echo $page['h3']; ?></h3> <?php endif; ?> <?php if ( $page['text'] ) : ?> <?php echo $page['text']; ?> <?php endif; ?> </section> <?php if ( is_single_paged( $pagecount ) ) : ?> <section> The last page only. </section> <?php endif; ?> <section class="pagenation"> <?php if ( function_exists('single_paginate') ) { $args = array( 'total' => $pagecount, 'current' => $paged, ); single_paginate($args); } ?> </section> <section class="prev-next"> <ul> <?php prev_single_paged_link( $pagecount, $paged, "PREV", "list" ); next_single_paged_link( $pagecount, $paged, "NEXT", "list" ); ?> </ul> </section> </article> <?php endwhile; endif; ?> <?php get_footer(); ?> </body>
Change log
- 1.4.0 - Specify canonical URL in canonical meta tag
- 1.3.0 - Add New function
add_rel_prev_next_paginated_posts()
- 1.2.8 - Rename a function to
is_perm_trailingslash()
- 1.2.7 - Improve some codes for comparing same types
- 1.2.6 - 🐛 Fix bug in function
is_single_paged()
- 1.2.5 - 🐛 Fix bug for navigation links when the permalink setting has no Trailing Slash
- 1.2.4 - 🐛 Fix PHP Notice for Undefined variable
- 1.2.3 - Add PHP Unit Testing w/phpunit via TravisCI
- 1.2.2 - Add support that permalink setting has no Trailing Slash. And Support Plugin CF Preview Fix for Cloudfront (w/ conditions).
- 1.2.1 - Add composer.json
- 1.2.0 - Add Support Wordpress Plugin Public Post Preview
- 1.1.0 - Add New functions
prev_single_paged_link()
andnext_single_paged_link()
- 1.0.0 - 🎉 Initial Release
See CHANGELOG file.
License
See LICENSE file.