php 如何实现 一篇文章内容太多 自动php分页原理

在文章内容页替换{$content}为
{php $i=strrpos($pages,&href=&);}
{php $str = substr($pages,$i+5,-10);}
{php $content = str_replace(&&img&,&&strong&&font color=#ff0033&点击图片 进入下一页&/font&&/strong&&a href=&.$str.&&img&,$content);}
{php echo str_replace(&/&&,&/&&/a&&,$content);}
重新生成,好了,一切OK!
1.内容中有包含input的请不要使用,因为{php echo str_replace(&/&&,&/&&/a&&,$content);}没做判断直接替换.想想内容中有input的朋友也不多,考虑到效率问题就先不写了,等想好更好的方法在判断.
2.有朋友可能想控制替换的次数,一篇文章中存在几个图片的可能性很大.我查了一下 str_replace有个可选函数,有需要的朋友可以看一下.
大家有问题就回帖留言吧,网站没改版完呢,本来不想发地址,不过想想还是发布个演示吧,大家修改起来也放心.
最近有朋友给我留言说是这个功能出现了一些小问题,请大家把具体问题描述一下,如果可能请把相关地址贴出来。下面是我结合“化蝶自在飞”版主对没有分页丢失图片的修改,再次修改了当文章到达最后分页的再次点击进入栏目页(这里大家可以自己修改,还有一个好的方式就是进入下一篇文章/上一篇文章)
& && &{if $pages}& && && && && &&
& &&&&?php
& && &&&$i=strrpos($pages,&href=&);
& && &&&$str = substr($pages,$i+5,-10);
& && &&&$m=strpos($pages,$str);
& && &&&if ($m==$i+5){
& && & $content = preg_replace('/(&img (.+)&)/Ui',&&a href=\&&.$CATEGORY[$catid][url].&\&&\${1}&/a&&,$content,-1);
& && &&&else{
& && & $content = preg_replace('/(&img (.+)&)/Ui',&&a href=&.$str.&\${1}&/a&&,$content,-1);& && &&
& & {/if}&
& & {$content}
转载于 :/thread--1.html&
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我的网站实现:
$i=strrpos($pages,&href=&);
$str = substr($pages,$i+5,-13);
$m=strpos($pages,$str);
if ($m!=$i+5){
$content = preg_replace('/(&img (.+)&)/Ui',&&a href=&.$str.&\${1}&/a&&,$content,-1); & & &&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场欢迎, 加入我们!
已是 会员?
和属于他们的地方
可以在这边注册,或者直接把想注册的用户名发我邮箱
当前位置&:&&& &CSS+php轻松替代插件实现wordpress分页
CSS+php轻松替代插件实现wordpress分页
评论数:条 &浏览:3,288次&
使用wordpress的博友为了使博客更好看都会想到要一个好的分页,毕竟wordpress默认的分页不怎么美观。但是,相信刚开始,除了喜欢倒腾代码或者具有完美“强迫症”的童鞋外,一般都会因为嫌麻烦而或者因为对代码不懂而选择使用wordpress插件来实现文章的分页,本人刚开始搭建破折君博客的时候也是用类似wp-pagenavi翻页插件来实现的。
但是,大家应该都知道wordpress装太多的插件,因为在这个追求精简,简单生活的年代谁也不想代码冗繁,同时网页数据大,会引起网页打开速度慢,这样对访客也不是很友好。于是,我们可以通过css样式以及php分页函数来实现wordpress分页,下面就介绍怎样利用css+php函数轻松替代插件来实现wordpress分页。
首先在css样式表里添加下面这个样式:
.pagenavi_badoo {
font-size:12
text-align:
font-weight:700;
margin:10px 0;
.pagenavi_badoo a {
background:#
color:#22222e;
border:1px solid #
padding:4px 8
-moz-border-radius: 2
-webkit-border-radius: 2
border-radius: 2
.pagenavi_badoo a:hover {
background:#252525;
text-decoration:
-moz-border-radius: 2
-webkit-border-radius: 2
border-radius: 2
.pagenavi_badoo .pages {
margin-right:5
background:#252525;
padding:4px 8
-moz-border-radius: 2
-webkit-border-radius: 2
border-radius: 2
.pagenavi_badoo .current {
color:#cbff83;
background:#252525;
padding:4px 8
-moz-border-radius: 2
-webkit-border-radius: 2
border-radius: 2
添加好样式后,在function.php这个函数里面添加分页函数,具体代码如下:
if ( !function_exists('pagenavi') ) {
function pagenavi( $p = 7 ) { // 取当前页前后各 2 页,根据需要改
if ( is_singular() ) // 文章与插页不用
global $wp_query, $
$max_page = $wp_query-&max_num_
if ( $max_page == 1 ) // 只有一页不用
if ( empty( $paged ) ) $paged = 1;
echo '&span&页数:' . $paged . '/' . $max_page . '&/span&'; // 显示页数
if ( $paged & $p + 1 ) p_link( 1, '最前页' );
if ( $paged & $p + 2 ) echo '... ';
for( $i = $paged - $p; $i &= $paged + $p; $i++ ) { // 中间页
if ( $i & 0 && $i &= $max_page ) $i == $paged ? print "&span class='page-numbers current'&{$i}&/span& " : p_link( $i );
if ( $paged & $max_page - $p - 1 ) echo '... ';
if ( $paged & $max_page - $p ) p_link( $max_page, '最后页' );
function p_link( $i, $title = '' ) {
if ( $title == '' ) $title = "第 {$i} 页";
echo "&a href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'&{$i}&/a& ";
添加完上述代码后,运行下看网站的分页是不是搞定了,不过有点需要说明,在样式表里面width以及背景颜色都是按照破折君博客来设定的,只要适当调整就好。
以上就是如何利用css样式和php函数实现wordpress分页的方法,真正避免过多利用wp插件。如果你有什么建议和问题,欢迎在评论区留言指教!
也许你也感兴趣:
该日志由 破折君 于日发表在分类下,
你可以,并在保留及作者的情况下到你的网站或博客。 |
转载请注明:
关键字: , , , ,
【上一篇】
【下一篇】
调用微博内容 -->
九江原创联盟| 站长QQ:易多云免备案虚拟主机,新用户免费试用15天,一键安装Wordpress,!我们可能会碰到这样一种情况:发布的文章或页面太长,想要把一篇文章分成好几页,有的时候是为了方便用户阅读,有的时候可以说是为了SEO,到底为了什么目的,那是你的事儿了,我们在这里只是告诉你如何实现Wordpress的文章分页功能。WordPress系统是内置分页功能的,要实现它极其简单,只需要在你想要分页的地方加入下面的代码即可(注意,是在文本编辑模式下):&!--nextpage--&但还有一个问题.要让这个代码真正能够实现其分页功能,还需要你所使用的Wordpress主题支持,Wordpress的默认主题是支持的,如果你的主题不支持,那解决方法也很简单,找到你主题文件内的single.php里的下面这行代码:&?php the_content(); ?&在这段代码下面加上:&?php wp_link_pages('before=&div id=&page-links&&&after=&/div&'); ?&即可。如果你想了解更多,请查阅 如果你不想每次都切换到文本编辑模式,那你可以 请尊重我们的辛苦付出,未经允许,请不要转载
的文章! ◆◆6
最后编辑于:作者: ttttt该用户很懒,还没有介绍自己。无插件实现 WordPress 单篇文章分页
2011 年 10 月 1 日 &
14,053 views
记得很久以前折腾的教程网站,主要是一个教程网站,用的也是。说到教程网站,文章当然会有很多,往往一篇文章就长到一个恐怖的程度…并且打开很慢,所以给网站添加一个分页的功能是当务之急!
在网上找了一些教程进行试验,主要都是使用 WordPress 自带隐藏的文章内容分页功能。
下面我们将说下如何显示 WordPress(我只在 3.1.1 下面测试过)隐藏的文章内容分页功能:
1. 找到wp-includes/js/quicktags.js ,在其中找到下面这个:
1edButtons[edButtons.length]=new edButton(“ed_more”,”more”,”&!–more–&”,”&,”t”,-1);
在这个代码的后面加上如下代码:
1edButtons[edButtons.length]=new edButton(“ed_next”,”page”,”&!–nextpage–&”,”&,”p”,-1);[/cce]
注:是“ed_next ”,不是“ed_netx ”。是“–nextpage–”,不是“–netxpage–”,网上很多 地方都是拼写错误。
2. 继续在wp-includes/js/quicktags.js 中找到如下代码:
1j.Buttons[j.Buttons.length]=new edButton(a+”_more”,”more”,”&!–more–&”,”&,”t”,-1);
在后面加上如下代码:
1j.Buttons[j.Buttons.length]=new edButton(a+”_next”,”page”,”&!–nextpage–&”,”&,”p”,-1);
保存wp-includes/js/quicktags.js
3. 找到wp-includes/js/quicktags.dev.js ,找到下面代码
1/* edButtons[edButtons.length] = new edButton(‘ed_next’ ,’page’ ,’&!–nextpage–&’ ,” ,’p’ ,-1 ); */
将其注释符号去掉,如下:
1edButtons[edButtons.length] = new edButton(‘ed_next’ ,’page’ ,’&!–nextpage–&’ ,” ,’p’ ,-1 );
4. 找到wp-admin/includes/post.php ,找到下面代码:
1‘link’, ‘unlink’, ‘wp_more’,
在后面添加以下代码:
1[cce]‘wp_page’,[/cce]
好了,WordPress 3.1.1 隐藏的文章内容分页功能现在已经显示出来了。如图:(此图标和 more 图标相似)
下面我们还要往当前目录下single.php 里面添加分页函数,找到代码:
1&?php the_content(); ?&
在下面添加分页函数:
1&?php wp_link_pages(‘before=&after=&next_or_number=number&pagelink=第%页’); ?&
现在你可以添加一个长篇文章来测试效果了。当然了如果你会CSS,你还可以美化一下效果。 关于函数 wp_link_pages 的用法可以查看WordPress 官网
此分页功能对搜索引擎不够友好,所以我们还得改造。此方法参照: 1. 我们找到当前主题目录下的header.php ,在&head&&/head&之间加上如下代码:
1&?php if ( is_singular() ){ ?& &link rel=”canonical” href=”&?php the_permalink(); ?&” /& &?php } ?&
2. 找到当前主题目录下的header.php ,在输出description元标记的代码后添加:
1&?php if (get_query_var(‘paged’)) { //判断是否为首页 echo ‘第’; echo get_query_var(‘paged’); //页码 echo ‘页’; }?&
此方法可能有些问题,我没有发现有任何改变。 3. 避免feed输出也被分页,找到 wp-includes/query.php ,找到代码:
1if ( strpos( $content, ‘&!–nextpage–&’ ) ) {
1if ( strpos( $content, ‘&!–nextpage–&’ ) && (!is_feed()) ) {
改造基本完成,有什么问题提出来,大家可以交流下。 今天是国庆节,祝大家节日快乐!
本站长期承接 WordPress 项目,详情请 Email:jack@aips.me。
<img alt="最佳香港主机" src="/ckfinder/images/Zhuji91%.jpg"
POWER COMMENTS}

我要回帖

更多关于 php分页原理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信