


PHP code example for adding page number navigation to article list page in WordPress theme, _PHP tutorial
PHP code example for adding page number navigation to the article list page in WordPress theme,
WordPress’s default suggestion to theme developers is to provide up and down page buttons at the bottom of the article list, so it is not provided Function used directly in paging navigation under the article list. Here I provide a relatively complete paging navigation function.
/** *WordPress 文章列表分页导航 *http://www.endskin.com/page-navi/ */ function Bing_get_pagenavi( $query = false, $num = false, $before = '<article class="pagenavi postlistpagenavi">', $after = '</article>', $options = array() ){ global $wp_query; $options = wp_parse_args( $options, array( 'pages_text' => '%CURRENT_PAGE%/%TOTAL_PAGES%', 'current_text' => '%PAGE_NUMBER%', 'page_text' => '%PAGE_NUMBER%', 'first_text' => __( '« 首页', 'Bing' ), 'last_text' => __( '尾页 »', 'Bing' ), 'next_text' => __( '»', 'Bing' ), 'prev_text' => '«', 'dotright_text' => '...', 'dotleft_text' => '...', 'num_pages' => 5, 'always_show' => 0, 'num_larger_page_numbers' => 3, 'larger_page_numbers_multiple' => 10 ) ); if( $wp_query->max_num_pages <= 1 || is_single() ) return; if( !empty( $query ) ){ $request = $query->request; $numposts = $query->found_posts; $max_page = $query->max_num_pages; $posts_per_page = intval( $num ); }else{ $request = $wp_query->request; $numposts = $wp_query->found_posts; $max_page = $wp_query->max_num_pages; $posts_per_page = intval( get_query_var( 'posts_per_page' ) ); } $paged = intval( get_query_var( 'paged' ) ); if( empty( $paged ) || $paged == 0 ) $paged = 1; $pages_to_show = intval( $options['num_pages'] ); $larger_page_to_show = intval( $options['num_larger_page_numbers'] ); $larger_page_multiple = intval( $options['larger_page_numbers_multiple'] ); $pages_to_show_minus_1 = $pages_to_show - 1; $half_page_start = floor( $pages_to_show_minus_1 / 2 ); $half_page_end = ceil( $pages_to_show_minus_1 / 2 ); $start_page = $paged - $half_page_start; if( $start_page <= 0 ) $start_page = 1; $end_page = $paged + $half_page_end; if( ( $end_page - $start_page ) != $pages_to_show_minus_1 ) $end_page = $start_page + $pages_to_show_minus_1; if( $end_page > $max_page ){ $start_page = $max_page - $pages_to_show_minus_1; $end_page = $max_page; } if( $start_page <= 0 ) $start_page = 1; $larger_per_page = $larger_page_to_show * $larger_page_multiple; $larger_start_page_start = ( ( floor( $start_page / 10 ) * 10 ) + $larger_page_multiple ) - $larger_per_page; $larger_start_page_end = floor( $start_page / 10 ) * 10 + $larger_page_multiple; $larger_end_page_start = floor( $end_page / 10 ) * 10 + $larger_page_multiple; $larger_end_page_end = floor( $end_page / 10 ) * 10 + ( $larger_per_page ); if( $larger_start_page_end - $larger_page_multiple == $start_page ){ $larger_start_page_start = $larger_start_page_start - $larger_page_multiple; $larger_start_page_end = $larger_start_page_end - $larger_page_multiple; } if( $larger_start_page_start <= 0 ) $larger_start_page_start = $larger_page_multiple; if( $larger_start_page_end > $max_page ) $larger_start_page_end = $max_page; if( $larger_end_page_end > $max_page ) $larger_end_page_end = $max_page; if( $max_page > 1 || intval( $options['always_show'] ) == 1 ){ $pages_text = str_replace( '%CURRENT_PAGE%', number_format_i18n( $paged ), $options['pages_text'] ); $pages_text = str_replace( '%TOTAL_PAGES%', number_format_i18n( $max_page ), $pages_text); echo $before; if( !empty( $pages_text ) ) echo '<span class="pages">' . $pages_text . '</span>'; if( $start_page >= 2 && $pages_to_show < $max_page ){ $first_page_text = str_replace( '%TOTAL_PAGES%', number_format_i18n( $max_page ), $options['first_text'] ); echo '<a href="' . esc_url( get_pagenum_link() ) . '" class="first" title="' . $first_page_text . '">' . $first_page_text . '</a>'; } if( $larger_page_to_show > 0 && $larger_start_page_start > 0 && $larger_start_page_end <= $max_page ){ for( $i = $larger_start_page_start;$i < $larger_start_page_end;$i += $larger_page_multiple ){ $page_text = str_replace( '%PAGE_NUMBER%', number_format_i18n( $i ), $options['page_text'] ); echo '<a href="' . esc_url( get_pagenum_link( $i ) ) . '" class="page" title="' . $page_text . '">' . $page_text . '</a>'; } } previous_posts_link( $options['prev_text'] ); for( $i = $start_page;$i <= $end_page;$i++ ){ if( $i == $paged ){ $current_page_text = str_replace( '%PAGE_NUMBER%', number_format_i18n( $i ), $options['current_text'] ); echo '<span class="current">' . $current_page_text . '</span>'; }else{ $page_text = str_replace( '%PAGE_NUMBER%', number_format_i18n( $i ), $options['page_text'] ); echo '<a href="' . esc_url( get_pagenum_link( $i ) ).'" class="page" title="' . $page_text . '">' . $page_text . '</a>'; } } if( empty( $query ) ) echo '<span id="next-page">'; next_posts_link( $options['next_text'], $max_page ); if( empty( $query ) ) echo '</span>'; } if( $larger_page_to_show > 0 && $larger_end_page_start < $max_page ){ for( $i = $larger_end_page_start;$i <= $larger_end_page_end;$i += $larger_page_multiple ){ $page_text = str_replace( '%PAGE_NUMBER%', number_format_i18n( $i ), $options['page_text'] ); echo '<a href="' . esc_url( get_pagenum_link( $i ) ).'" class="page" title="' . $page_text . '">' . $page_text . '</a>'; } } if( $end_page < $max_page ){ $last_page_text = str_replace( '%TOTAL_PAGES%', number_format_i18n( $max_page ), $options['last_text'] ); echo '<a href="' . esc_url( get_pagenum_link( $max_page ) ) . '" class="last" title="' . $last_page_text . '">' . $last_page_text . '</a>'; } echo $after; }
Then add the following code where you need to use paging navigation:
<?php if( function_exists( 'Bing_get_pagenavi' ) ) Bing_get_pagenavi(); ?>
Articles you may be interested in:
- Analysis of the role and basic usage of function hooks in WordPress
- Enabling themes to support gadgets and adding plug-in enable functions in WordPress
- Detailed explanation of the basic method of writing shortcode format tags in WordPress

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Enable comments in WordPress website: 1. Log in to the admin panel, go to "Settings" - "Discussions", and check "Allow comments"; 2. Select a location to display comments; 3. Customize comments; 4. Manage comments, approve, reject or delete; 5. Use <?php comments_template(); ?> tags to display comments; 6. Enable nested comments; 7. Adjust comment shape; 8. Use plugins and verification codes to prevent spam comments; 9. Encourage users to use Gravatar avatar; 10. Create comments to refer to

Reasons why WordPress websites cannot be found in search engines: 1. Indexing issues; 2. Content issues; 3. Website technical issues; 4. Link issues; 5. Other issues such as geographical restrictions, website name and social media presence.

How to turn off a comment in WordPress? Specific article or page: Uncheck Allow comments under Discussion in the editor. Whole website: Uncheck "Allow comments" in "Settings" -> "Discussion". Using plug-ins: Install plug-ins such as Disable Comments to disable comments. Edit the topic file: Remove the comment form by editing the comments.php file. Custom code: Use the add_filter() function to disable comments.

How to copy WordPress code? Copy from the admin interface: Log in to the WordPress website, navigate to the destination, select the code and press Ctrl C (Windows)/Command C (Mac) to copy the code. Copy from a file: Connect to the server using SSH or FTP, navigate to the theme or plug-in file, select the code and press Ctrl C (Windows)/Command C (Mac) to copy the code.

You can install the FTP plug-in through WordPress, configure the FTP connection, and then upload the source code using the file manager. The steps include: installing the FTP plug-in, configuring the connection, browsing the upload location, uploading files, and checking that the upload is successful.

Be cautious when building a WordPress website. The guide to breaking through pits helps you avoid risks: choose paid themes and avoid the quality and safety risks of free themes. "Less is more" when installing plugins to avoid website speed and compatibility issues. Regularly optimize the database to ensure the smooth operation of the website. Pay attention to security measures and regularly update and install security plug-ins. Modify the code carefully to avoid website crashes and do it in a test environment if necessary. Pay attention to performance optimization, improve website speed, and improve user experience.

To log in to a WordPress website account: Visit the login page: Enter the website URL plus "/wp-login.php". Enter your username and password. Click "Login". Verification Two-step Verification (optional). After successfully logging in, you will see the website dashboard.

WordPress Error Resolution Guide: 500 Internal Server Error: Disable the plug-in or check the server error log. 404 Page not found: Check permalink and make sure the page link is correct. White Screen of Death: Increase the server PHP memory limit. Database connection error: Check the database server status and WordPress configuration. Other tips: enable debug mode, check error logs, and seek support. Prevent errors: regularly update WordPress, install only necessary plugins, regularly back up your website, and optimize website performance.
