解决方案可能取决于您为什么希望它在帖子页面上以这种方式工作。但最好的方法可能是在客户端执行此操作。
Method with maximum height
假设您的帖子模板的内容如下:
<div id="content"><?php the_content(); ?></div>
您需要在此div之后添加一个按钮,因此它将成为:
<div id="content"><?php the_content(); ?></div>
<button class="show-more">Show more</button>
然后添加CSS,以您的样式仅显示特定高度的内容。css添加:
#content { max-height: 100px; overflow: hidden; }
.show-more { margin-top: 15px; }
最后,添加一个脚本,该脚本将显示内容的全部高度,并在单击后删除“显示更多”按钮:
jQuery(document).ready(function($) {
$(\'.show-more\').click(function() {
$(\'#content\').css(\'max-height\', \'none\');
$(this).remove();
});
});
这只是一个基本设置,所以可以随意调整样式和脚本。
这里有一个小提琴的链接,您可以在这里试一试:https://jsfiddle.net/psxtur2L/
Method with replacing the content
如果您想将摘录具体显示为简短版本,可以这样做。
在模板中,您可以添加摘录和内容,以及一个按钮,如下所示:
<div id="excerpt"><?php the_excerpt(); ?></div>
<div id="content"><?php the_content(); ?></div>
<button class="show-more">Show more</button>
在CSS中,默认情况下只需隐藏内容:
#content { display: none; }
.show-more { margin-top: 15px; }
然后,当用户单击按钮时,隐藏摘录并显示内容:
jQuery(document).ready(function($) {
$(\'.show-more\').click(function() {
$(\'#excerpt\').hide();
$(\'#content\').show();
$(this).remove();
});
});
这里有一把小提琴:
https://jsfiddle.net/o7z2Lsks/请注意,如果用户使用浏览器的调试器工具,则无需单击按钮即可访问全部内容,但我认为这并不重要。如果需要检查用户是否登录等,则应使用AJAX,因此需要对代码进行更多的添加。