| | 2191 | * Return navigation to next/previous post when applicable. |
| | 2192 | * |
| | 2193 | * @since 4.1.0 |
| | 2194 | * |
| | 2195 | * @param array $args { |
| | 2196 | * Default post navigation arguments. Optional. |
| | 2197 | * |
| | 2198 | * @type string $prev_text Anchor text to display in the previous |
| | 2199 | * post link. |
| | 2200 | * @type string $next_text Anchor text to display in the next post link. |
| | 2201 | * } |
| | 2202 | * @return string |
| | 2203 | */ |
| | 2204 | function get_the_post_navigation( $args = array() ) { |
| | 2205 | $args = wp_parse_args( $args, array( |
| | 2206 | 'prev_text' => _x( '<span class="meta-nav">←</span> %title', 'Previous post link' ), |
| | 2207 | 'next_text' => _x( '%title <span class="meta-nav">→</span>', 'Next post link' ), |
| | 2208 | ) ); |
| | 2209 | |
| | 2210 | $navigation = ''; |
| | 2211 | $previous = get_previous_post_link( '<div class="nav-previous">%link</div>', $args['prev_text'] ); |
| | 2212 | $next = get_next_post_link( '<div class="nav-next">%link</div>', $args['next_text'] ); |
| | 2213 | |
| | 2214 | // Only add markup if there's somewhere to navigate to. |
| | 2215 | if ( $next || $previous ) { |
| | 2216 | $navigation = _navigation_markup( $next . $previous, 'post-navigation', __( 'Post navigation' ) ); |
| | 2217 | } |
| | 2218 | |
| | 2219 | return $navigation; |
| | 2220 | } |
| | 2221 | |
| | 2222 | /** |
| | 2223 | * Display navigation to next/previous post when applicable. |
| | 2224 | * |
| | 2225 | * @since 4.1.0 |
| | 2226 | * |
| | 2227 | * @param array $args { |
| | 2228 | * Default post navigation arguments. Optional. |
| | 2229 | * |
| | 2230 | * @type string $prev_text Anchor text to display in the previous |
| | 2231 | * post link. |
| | 2232 | * @type string $next_text Anchor text to display in the next post link. |
| | 2233 | * } |
| | 2234 | */ |
| | 2235 | function the_post_navigation( $args = array() ) { |
| | 2236 | echo get_the_post_navigation( $args ); |
| | 2237 | } |
| | 2238 | |
| | 2239 | /** |
| | 2240 | * Return navigation to next/previous set of posts when applicable. |
| | 2241 | * |
| | 2242 | * @since 4.1.0 |
| | 2243 | * |
| | 2244 | * @global WP_Query $wp_query WordPress Query object. |
| | 2245 | * @param array $args { |
| | 2246 | * Default paging navigation arguments. Optional. |
| | 2247 | * |
| | 2248 | * @type string $prev_text Anchor text to display in the previous |
| | 2249 | * posts link. |
| | 2250 | * @type string $next_text Anchor text to display in the next posts link. |
| | 2251 | * } |
| | 2252 | * @return string |
| | 2253 | */ |
| | 2254 | function get_the_paging_navigation( $args = array() ) { |
| | 2255 | $navigation = ''; |
| | 2256 | |
| | 2257 | // Don't print empty markup if there's only one page. |
| | 2258 | if ( $GLOBALS['wp_query']->max_num_pages > 1 ) { |
| | 2259 | $args = wp_parse_args( $args, array( |
| | 2260 | 'prev_text' => __( '<span class="meta-nav">←</span> Older posts' ), |
| | 2261 | 'next_text' => __( 'Newer posts <span class="meta-nav">→</span>' ), |
| | 2262 | ) ); |
| | 2263 | |
| | 2264 | $next_link = get_next_posts_link( $args['prev_text'] ); |
| | 2265 | $prev_link = get_previous_posts_link( $args['next_text'] ); |
| | 2266 | |
| | 2267 | if ( $next_link ) { |
| | 2268 | $navigation .= '<div class="nav-previous">' . $next_link . '</div>'; |
| | 2269 | } |
| | 2270 | |
| | 2271 | if ( $prev_link ) { |
| | 2272 | $navigation .= '<div class="nav-next">' . $prev_link . '</div>'; |
| | 2273 | } |
| | 2274 | |
| | 2275 | $navigation = _navigation_markup( $navigation ); |
| | 2276 | } |
| | 2277 | |
| | 2278 | return $navigation; |
| | 2279 | } |
| | 2280 | |
| | 2281 | /** |
| | 2282 | * Display navigation to next/previous set of posts when applicable. |
| | 2283 | * |
| | 2284 | * @since 4.1.0 |
| | 2285 | * @uses get_paging_navigation() |
| | 2286 | * |
| | 2287 | * @param array $args { |
| | 2288 | * Default paging navigation arguments. Optional. |
| | 2289 | * |
| | 2290 | * @type string $prev_text Anchor text to display in the previous |
| | 2291 | * posts link. |
| | 2292 | * @type string $next_text Anchor text to display in the next posts link. |
| | 2293 | * } |
| | 2294 | */ |
| | 2295 | function the_paging_navigation( $args = array() ) { |
| | 2296 | echo get_the_paging_navigation( $args ); |
| | 2297 | } |
| | 2298 | |
| | 2299 | /** |
| | 2300 | * Return a paginated navigation to next/previous set of posts, |
| | 2301 | * when applicable. |
| | 2302 | * |
| | 2303 | * @since 4.1.0 |
| | 2304 | * |
| | 2305 | * @param array $args { |
| | 2306 | * Default pagination arguments. Optional. |
| | 2307 | * |
| | 2308 | * @type string $base Url to be used to create the paginated links. |
| | 2309 | * Example: "http://example.com/all_posts.php%_%" |
| | 2310 | * The '%_%' is required and will be replaced by |
| | 2311 | * the contents of the 'format' argument. |
| | 2312 | * @type string $format Used to replace the page number. |
| | 2313 | * Example:"?page=%#%" |
| | 2314 | * The '%#%' is required and will be replaced with |
| | 2315 | * the page number. |
| | 2316 | * @type int $total The total amount of pages. |
| | 2317 | * @type int $current The current page number. |
| | 2318 | * @type bool $prev_next Whether to include previous and next links. |
| | 2319 | * Default: true. |
| | 2320 | * @type string $prev_text Anchor text to display in the previous |
| | 2321 | * posts link. |
| | 2322 | * @type string $next_text Anchor text to display in the next posts link. |
| | 2323 | * @type bool $show_all Whether to show all pages. |
| | 2324 | * Default: false, shows short list of the pages |
| | 2325 | * near the current page. |
| | 2326 | * @type int $end_size Amount of numbers on either the start and the |
| | 2327 | * end list edges. |
| | 2328 | * Default: 1. |
| | 2329 | * @type int $mid_size Amount of numbers to either side of current page |
| | 2330 | * but not including current page. |
| | 2331 | * Default: 1. |
| | 2332 | * @type array $add_args Query vars to be added to the links. |
| | 2333 | * @type string $before_page_number Text to prepend to the anchor text. |
| | 2334 | * @type string $after_page_number Text to append to the anchor text. |
| | 2335 | * } |
| | 2336 | * @return string |
| | 2337 | */ |
| | 2338 | function get_the_pagination( $args = array() ) { |
| | 2339 | $navigation = ''; |
| | 2340 | |
| | 2341 | // Don't print empty markup if there's only one page. |
| | 2342 | if ( $GLOBALS['wp_query']->max_num_pages > 1 ) { |
| | 2343 | $args = wp_parse_args( $args, array( |
| | 2344 | 'mid_size' => 1, |
| | 2345 | 'prev_text' => __( '← Previous' ), |
| | 2346 | 'next_text' => __( 'Next →' ), |
| | 2347 | ) ); |
| | 2348 | // Make sure we get plain links, so we can work with it. |
| | 2349 | $args['type'] = 'plain'; |
| | 2350 | |
| | 2351 | // Set up paginated links. |
| | 2352 | $links = paginate_links( $args ); |
| | 2353 | |
| | 2354 | if ( $links ) { |
| | 2355 | $navigation = _navigation_markup( $links, 'pagination' ); |
| | 2356 | } |
| | 2357 | } |
| | 2358 | |
| | 2359 | return $navigation; |
| | 2360 | } |
| | 2361 | |
| | 2362 | /** |
| | 2363 | * Display a paginated navigation to next/previous set of posts, |
| | 2364 | * when applicable. |
| | 2365 | * |
| | 2366 | * @since 4.1.0 |
| | 2367 | * |
| | 2368 | * @param array $args { |
| | 2369 | * Default pagination arguments. Optional. |
| | 2370 | * |
| | 2371 | * @type string $base Url to be used to create the paginated links. |
| | 2372 | * Example: "http://example.com/all_posts.php%_%" |
| | 2373 | * The '%_%' is required and will be replaced by |
| | 2374 | * the contents of the 'format' argument. |
| | 2375 | * @type string $format Used to replace the page number. |
| | 2376 | * Example:"?page=%#%" |
| | 2377 | * The '%#%' is required and will be replaced with |
| | 2378 | * the page number. |
| | 2379 | * @type int $total The total amount of pages. |
| | 2380 | * @type int $current The current page number. |
| | 2381 | * @type bool $prev_next Whether to include previous and next links. |
| | 2382 | * Default: true. |
| | 2383 | * @type string $prev_text Anchor text to display in the previous |
| | 2384 | * posts link. |
| | 2385 | * @type string $next_text Anchor text to display in the next posts link. |
| | 2386 | * @type bool $show_all Whether to show all pages. |
| | 2387 | * Default: false, shows short list of the pages |
| | 2388 | * near the current page. |
| | 2389 | * @type int $end_size Amount of numbers on either the start and the |
| | 2390 | * end list edges. |
| | 2391 | * Default: 1. |
| | 2392 | * @type int $mid_size Amount of numbers to either side of current page |
| | 2393 | * but not including current page. |
| | 2394 | * Default: 1. |
| | 2395 | * @type array $add_args Query vars to be added to the links. |
| | 2396 | * @type string $before_page_number Text to prepend to the anchor text. |
| | 2397 | * @type string $after_page_number Text to append to the anchor text. |
| | 2398 | * } |
| | 2399 | */ |
| | 2400 | function the_pagination( $args = array() ) { |
| | 2401 | echo get_the_pagination( $args ); |
| | 2402 | } |
| | 2403 | |
| | 2404 | /** |
| | 2405 | * Wraps passed links in navigational markup. |
| | 2406 | * |
| | 2407 | * @since 4.1.0 |
| | 2408 | * @access private |
| | 2409 | * |
| | 2410 | * @param string $links Navigational links. Required. |
| | 2411 | * @param string $class Custom class for nav element. Optional. |
| | 2412 | * Default: 'paging-navigation'. |
| | 2413 | * @param string $screen_reader_text Screen reader text for nav element. |
| | 2414 | * Optional. |
| | 2415 | * @return string |
| | 2416 | */ |
| | 2417 | function _navigation_markup( $links, $class = 'paging-navigation', $screen_reader_text = '' ) { |
| | 2418 | if ( empty( $screen_reader_text ) ) { |
| | 2419 | $screen_reader_text = __( 'Posts navigation' ); |
| | 2420 | } |
| | 2421 | |
| | 2422 | $template = ' |
| | 2423 | <nav class="navigation %1$s" role="navigation"> |
| | 2424 | <h1 class="screen-reader-text">%2$s</h1> |
| | 2425 | <div class="nav-links">%3$s</div> |
| | 2426 | </nav>'; |
| | 2427 | |
| | 2428 | return sprintf( $template, sanitize_html_class( $class ), esc_html( $screen_reader_text ), $links ); |
| | 2429 | } |
| | 2430 | |
| | 2431 | /** |