WordPress More 标签从起始位置显示
现在我的 WordPress 首页上用的是 mb_strimwidth 函数来实现自动截断输出摘要的,这个是 PHP5 中特有的函数,对中文支持比较好,这个方法在之前关于首页的摘要显示方法在《Wordpress 3种日志摘要方法》中介绍过。今天要折腾的不是这个摘要显示方法,而是 WordPress 最原始的 More 标签摘要方法。
我还从来没有用过 WordPress 的 More 标签,所以对其了解程度仅限于基本使用,没有深究过。今天在给某童鞋修改主题时就遇到了 More 标签的一个问题,就是当使用 More 标签并且在首页通过 More 文本链接进入单篇日志的正文时,不是从正文起点位置阅读,而是直接跳到 More 标签之后的内容。
看了一下 More 标签的链接地址,格式形如:www.domain.com/123.html#more-456,其中的 456 就是这篇日志的 post_ID,那就很明显啦,这个链接肯定是直接跳至正文内页相应的锚链接,果然在正文中找到一个内容为空的锚点 <span id="more-456"></span>,所以要使点击 More 链接文本后从日志起始位置显示,只需要去掉 #more-456 这个锚点就可以啦。
分析完毕,操作嘛我已经发现有高手解决了,就直接抄抄过来啦,方法如下:
把以下函数放在 WordPress 主题文件夹的 functions.php 中:
$offset = strpos($link, '#more-');
if ($offset) {
$end = strpos($link, '"',$offset);
}
if ($end) {
$link = substr_replace($link, '', $offset, $end-$offset);
}
return $link;
}
add_filter('the_content_more_link', 'remove_more_jump_link');
这样就OK了,More 标签就直接显示文章的 URL 了,不带锚点的,方法是看了此文:http://digwp.com/2010/01/wordpress-more-tag-tricks/,英文好的童鞋可以好好看看这篇文章,其中对 More 标签的用法深入地挖掘了一下,本文分析的只是其中的一种,其他的我就不一一分析和翻译了。
-
自定义 Wordpress more 标签显示位置2011年04月7日 -
Wordpress 中 N合一的日志摘要方法2010年05月16日 -
Wordpress 3种日志摘要方法2009年08月22日 -
Wordpress 日志摘要截断的补充说明2010年08月30日
最近我正在忙于将z-blog换成wordpress,目前处于准备工作阶段,在本地安装了wordpress,打算调整好后弄到新的空间里面。
关于more标签,我就是想把首页的more标签那里的链接换成该文章的URL。
但是根据博主给的这个函数,我把它加到了所用主题的functions.php之下,结果不好用啊。
惭愧,我不是很懂wordpress,不明白把一个函数添加到functions.php中除了把这段代码复制进去,还需要做什么?
谢谢!
如果你要把more换成文章URL,可以参考这篇文章:http://wange.im/diy-wordpress-read-more.html
按照此方法,文章外的p标签没有了, 下面这个失效,怎么解决呀?
.entry-content p,.entry-summary p{text-indent: 2em;}
这个和p标签没有影响啊
但是使用了上面的方法 文章内容缩进消失了啊
post_content)), 0, 540,"...");
}
else
echo mb_strimwidth(apply_filters('the_excerpt', get_the_excerpt()), 0, 540,"...");
?>
这个可以改成
''.mb_strimwidth(apply_filters('the_excerpt', get_the_excerpt()), 0, 540,"...").'
';
呃。。。被过滤了,可以改成[p].mb_strimwidth(apply_filters('the_excerpt', get_the_excerpt()), 0, 540,"...").[/p]
郁闷的是订阅里只显示more之前的内容.我已经启用全文输出了
这就要看你的the_content是怎么写的了
函数随便加吗?
Pingback: 升级到WordPress3.0.1,本博客修改小记
恩,就这样,结束了
大功告成,感谢万戈提供空间
我不带走一片云彩。
正如我偷偷地走
终于撂倒猪八戒
卫冕水王
我已称帝!
其实就是为灌水找的借口,哎,努力灌水。
为了不让小猪暂时赶上来,我就多多留言,多多回复。
暂时领先的小卢要扩大优势
不错,我就是要这个
呵呵,能用上就好,写值了
我用ASP的。不过这东西多多学习也是好事。
ASP我学过一点,比PHP难~
function no_more_jumping($post){
return 'ID).'" class="read-more">'.'Continue Reading'.'';
}
add_filter('excerpt_more','no_more_jumping');
这个行吗
我还没研究过add_filter
又来学习学习!我的CSS+DIV的教科书到了!我要认真的看看,研究研究:)
呵呵,你也开始研究DIV+CSS啦,学会不难,学好就要花点时间咯
嗯,我就用插件了,禁不起折腾额~
哈哈,我要的就是折腾
还没更新恩
我这里不欢迎你,别再来了!
对于这种人不必客气
不是很懂~
这个真很有用!我现在一直在用more 标签,但还没这么细研究过。
我倒是没用more标签,不过小小的研究了一下,哈哈
不成人妖就行~
老万的文章就是销魂!!~
。。。哪里销魂了?我都没有配图就看得你销魂了
越来越厉害了呀万兄.对PHP这么熟悉了
对PHP不算熟悉,只是会点皮毛而已
还是喜欢你的生活博文!哈哈,技术博文也不错!
技术博文也是我生活的一部分,你就当生活博文看吧,哈哈
没有用过WP的more标签,因为从一开始我就不知道什么时候装上了摘要插件,糊里糊涂的多了个插件。
不提倡用插件,这个可以不用插件哒
这个问题俺也已经解决了
看来有这个需求的人还是不少的嘛
一般不用more标签,对代码多的文章支持不好,一不小心就中断了代码
同意,我也不用more标签,哈哈
你那阅读全文不是more吗
不是啊,代码来着
我覺得直接跳轉到錨點比較適合閱讀習慣~
个人习惯了,可能WP的默认设置就是出此考虑
这么爱折腾,我现在看到代码就头大了……
老万,我想把存档的月份改成2位的数字显示怎么弄啊?还有啊
关于时间的显示格式,你可以看看the_time()函数的参数,我也背不下来,每次改都是看着PHP手册改的,呵呵
来看看有没有新鲜的文章,没有,既然来了就留个脚印走吧。昨天拿别人的ID评论了两条,没有恶意的,向博主和小卢道歉了。
哈,不用向我道歉啦,我表示影响不大
MORE标签对SEO好?
好像没有这个说法吧,应该都是一样一样的
位置比较靠后了...这个问题好像不难
不算靠后,能来留言就好啊,哈哈
还有这等问题??
随便看看。我不diy
自己动手,丰衣足食嘛,小小DIY一下也是不错滴
我也没用过more这个功能.. 额 也不是说没用过,是选了前台没有反应
那是你的主题没有用the_content,而是用其他方法输出的
出现这种问题的人肯定编辑文章的时候不用html模式
那倒也不一定,HTML下也有more标签,只是很少有人会在HTML下去选
我一般用more,但是只能按段用,感觉比较局限。
这个我倒不知道,段中就不能加more吗?
老万 我遇到难题了 做的投票系统现在发现别人通过删除cookies来进行刷票,,不知都怎么禁止这个BUG
记录IP试试
在看《新三国》,logo一直在转,好囧!
logo在转?啥logo?
我一般都是用的系统自带的摸,简称自摸,mb_strimwidth函数好像有的空间不支持的
win主机肯定是不支持mb_strimwidth的,PHP4也是不支持的,不过现在WP2.9都必须PHP5了,所以也只有win主机不支持这个函数
这个还没注意过。。。我用的一个比较绿色的插件做的。。显示前三段
非插件可以解决的啦,不要用插件嘛
我就相信万戈不会文囧的
就算文囧我也会吹出一些来的,哈哈
我很少点MORE的。呵呵。
大多数人是直接点标题的,呵呵
我看文章,好像很少点击more,直接点标题,汗。。
呵呵,我也是啊
原始的路过……
原始的?冲动吗
我发现我也是从来都没用过
用的人还真不多嘛,呵呵
我将more标签锚点换成广告。。。。
哈哈,下次来就是等广告啦~
看了两篇都没看懂。
因为我的表达能力太差,而且又暴啰嗦,哈哈
我就用自带的more,不知道有啥区别
点击more标签后,不是直接跳到内页more之后开始阅读的吗?
加了这个代码是直接重头再读?
恩,从头显示文章
我用过more标签。
所以说这是最原始的嘛,大多数都有在用
我是用more的,这段代码的意思是不是可以去掉www.domain.com/123.html#more-456这个后面的l#more-456?
恩恩,就是这个意思,总算有人明白我在说啥了
这个东西我以前找过,只是不知道用什么搜索关键字去搜索,自己也表达不清。唉 终于在你这发现了。
谢谢,已经修改好了。
嘿,能有人可以用上就好
PS:我们2个在同一台服务器上,域名邮箱收不到信。
收不到吗?再测试
用域名邮箱,就收不同同主机发出去的邮件的。所以我换了gmail来你这回复啦。
你看http://vvvvvv.us/1480.html也有说哦。
还有这事,不知道有没有解决办法,我要折腾一下
再切换回来回复你下,你可以去后台的webmail邮局可以看到很多发送失败的邮件哦。由XXX@miao.hengtian.org 这样的发送端 发送的失败提示。
我那就是这样,纳闷。。。但又懒得用插件。。。你这个方法好。。。但是又要添加代码。。。
总比插件好嘛,快快去折腾吧
学习了..呵呵
我也是今天才刚学会的~
然后接着话痨一下。
然后mb还有这个函数的啊。我落伍了
有啊,在PHP教程里都是很靠前的介绍啦,上课不认真吧
晕..居然没有沙发..呼呼
冰哥哥在我这里长驻了,你的沙发以后就危险啦,哈哈
那我不和他抢沙发了..
嘿嘿
很少用more标签,不过记录下来这些代码,也许有用
我基本也是不用more标签的,呵呵
哦,先sf
你倒是不客气呀
我的侧边栏里为什么没有标签云啊
因為你是律師