关于wordpress某些主题使用WP-PageNavi插件无效的问题
之前在我的博客上安装了 WP-PageNavi
这个插件,来实现分页效果,结果却发现完全不起作用,后来才知道是某些主题不能识别 WP-PageNavi
的原因。
可以识别的主题可以做到在我们安装了 WP-PageNavi
插件之后,就会在 index.php
或者是 function.php
文件中插入一条对应的插件代码。不识别的就不能够自动添加,那么要实现分页效果,只有我们自己手动添加了。
以我当前的主题 Twenty Twelve 为例,其原控制分页的函数为 function.php
中的 twentytwelve_content_nav
函数,原函数:
function twentytwelve_content_nav( $html_id ) {
global $wp_query;
if ( $wp_query->max_num_pages > 1 ) : ?>
<nav id="<?php echo esc_attr( $html_id ); ?>" class="navigation" role="navigation">
<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentytwelve' ); ?></h3>
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentytwelve' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentytwelve' ) ); ?></div>
</nav><!-- .navigation -->
<?php endif;
}
下面就将分页的代码插入到该函数中,使用条件判断 if( function_exists( 'wp_pagenavi' ) )
如果插件未激活,则会阻止错误消息,并提供主题的默认分页作为后备。
function twentytwelve_content_nav( $html_id ) {
global $wp_query;
if ( $wp_query->max_num_pages > 1 ) : ?>
<nav id="<?php echo esc_attr( $html_id ); ?>" class="navigation" role="navigation">
<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentytwelve' ); ?></h3>
<?php if( function_exists( 'wp_pagenavi' ) ) { wp_pagenavi(); } else { ?>
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentytwelve' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentytwelve' ) ); ?></div>
<?php } ?>
</nav><!-- .navigation -->
<?php endif;
}
现在,分页功能就正常了!
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=217