如何制作<!--More-->按钮?

时间:2010-10-07 作者:m-torin

关于如何使Read More功能在Codex中显示不同的文本,有很多信息,但需要使用什么样的过滤器才能使其显示<button class="readmorebtn" onclick(permalink)>Read More</button>?

2 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

“(更多…)链接被筛选通过the_content_more_link in get_the_content(). 您可以钩住这个函数,让它返回您想要的任何内容。

add_filter(\'the_content_more_link\', \'more_button\');
function more_button($more_link) {
    return \'<button class="readmorebtn" onclick="\' .
        esc_attr(\'window.location="\' . get_permalink() . \'"\') .
        \'">Read more</button>\';
}

SO网友:EAMann

Short answer: 你没有。

Longer, more useful answer: 你需要做的是the_content_more_link 过滤简单链接并将其更改为可设置样式的元素,使其看起来像按钮。我在网站上使用的主题已经做到了这一点。它将我的阅读更多链接转换为:

<div class="readon-wrap1">
    <div class="readon1-l png"></div>
    <a href="http://mindsharestrategy.com/why-i-run/" class="readon-main">
        <span class="readon1-m png">
            <span class="readon1-r png">More</span>
        </span>
    </a>
</div>
您可以看到隐藏在中间的常规“阅读更多”链接。各种<div>s和<span>周围的有助于设置链接样式,使其显示为实心灰色按钮:

Read More button

因此,如果您想将链接样式设置为按钮,这就是要采取的路径。正如评论中所述<button> 标记用于表单内部。所以如果你使用<button> 标记阅读更多链接时,您将面临以下问题:

您的站点将无法验证您的站点布局,这可能会混淆屏幕阅读器和某些解析引擎(因为他们会看到<button> 并在查找表单的其余部分时删除链接或抛出错误)<!--more--> 在窗体主体内进行标记。你现在可以说“我不会那么做”,但事故就是事故,而且可能还会发生。。。然后怪诞和混乱就会随之而来

结束

相关推荐