WordPress 使用的 more 标签只能由the_content()get_the_content()显示,也就是说“阅读全文”的链接只能附于文章内容末尾。如果有自定义“阅读全文”显示位置的需要,只能另寻他法。

网络上大部分方法都是使用类似于<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">阅读全文</a>的方法实现,实际上这和点击文章的标题进入单篇文章页没有任何区别,丢失了自动生成“阅读全文”链接的两个特点:

  • “阅读全文”链接只会在文章使用 more 标签的情况出现;未使用,则不会出现。
  • 单击“阅读全文”进入文章页时会自动定位到 more 标签所在位置,方便继续阅读。

要模仿的像,一是要判断某篇文章是否含有 more 标签,二是要为“阅读全文”链接添加锚点,代码如下:

<?php if(strpos(get_the_content(),'#more-' . get_the_id())!=false):?>
	<a href="<?php the_permalink();?>#more-<?php the_ID();?>">阅读全文</a>
<?php endif;?>

将以上代码放入文章主循环内,便可以真正自定义“阅读全文”链接的显示位置了,“阅读全文”四个字可以任意修改。另外,还需要将the_content('阅读全文')修改为the_content('')以屏蔽 WordPress 自动生成的“阅读全文”链接。

WordPress 本身没有提供判断文章是否使用 more 标签的方法,想来是因为 more 标签是存在于文章正文中的字符串,而非一个状态,即使是 WordPress 程序自身也必须提取全部文字后对比判断是否包含 more 标签。

多看看 codex 和 PHP 手册很有帮助!

  1. !--nextpage--做成按钮放在 TinyMSE 的!--more--的旁边,你有没有什么好方法? :biggrin: