使用php在自定义内容中创建动态“阅读更多”链接

时间:2011-03-18 17:59:27

标签: php jquery

希望标题可以解释我想要完成的一些事情。所以我有一个自定义的CMS系统,基本上有一个正常的WYSIWYG(tinymce),用户可以写他们的博客文章。我已经查看了“分页”这篇文章,但我找不到任何过去“你必须自己编写这些功能”,所以我的第一个想法就是添加两个textareas,但这不太方便。

然后我认为如果有一些东西可以添加到所见即所得:

<span id='break1"></span>

我可以使用php或jquery或其他任何东西将你的代码转换为链接,然后使用htaccess文件来处理其余部分来处理URL。

我几乎没有关于如何处理这个的想法,所以任何信息,对此的想法将不胜感激。

这里有一个例子,它应该做什么:

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="/seo-title/2/">read more</a>
<!-- people would not see this part until the 'read more' link was clicked. -->
<!-- will open a new page NOT just hidden content -->
<p>Duis scelerisque, in tempus ante tortor eget tortor. Donec eu consequat augue.</p>

4 个答案:

答案 0 :(得分:4)

如果我理解正确,你想在php中生成这个并在javascript中处理更多的读取(特别是jquery)。我写了一个你可以构建的基本代码片段。

<p><?php echo substr(CONTENT,0,255); ?></p>
<?php if (strlen(CONTENT) > 255): ?>
    <a class="readmore">read more</a>
    <p class="more"><?php echo substr(CONTENT,256); ?></p>
<?php endif; ?>

javascript看起来像这样,快速切换。

var $readmore = $('.readmore');
$readmore.bind('click',function(){
    var $next = $(this).next('p');
    $next[$next.is(':visible') ? 'hide' : 'show']();
});

答案 1 :(得分:2)

我在博客上对摘要的处理方式是使用评论:

&LT;! - 多 - &GT;

然后我有一个函数来获取博客文章的摘要:

$i = strpos($contents, '<!--more-->');

if ($i !== false) {
    $i += strlen('<!--more-->');
    return substr($contents, 0, $i);
}
else return $contents;

答案 2 :(得分:1)

我认为迈克尔有正确的,除非我理解你想要在点击链接时创建一个新窗口,所以我认为实现这个目标的最佳方法可能是传递帖子ID或其拥有的任何唯一标识符一个执行sql查询以检索帖子的新页面。

通过get字符串这是最简单的:

<a href="fullpost.php?id=<?php echo $id; ?>" target="_blank">Read More</a>

然后我们迈克尔的子功能在那里剪切你想要剪切的帖子。

您可能想要研究的另一个想法是,如果您希望通过简短地缩短帖子来增加加载时间,那么您可以考虑将内容中的内容添加到具有动画下滑的隐藏框架或类似的内容。这就是我在页面上所做的。

如果您想在新页面上显示整个帖子而不仅仅是截止部分,那么只需将它们发送到该页面并传递帖子ID即可执行查询。

答案 3 :(得分:0)

我完全不明白你想做什么...点击“阅读更多”链接并显示之前隐藏的第二个p-tag?这是对的吗?!

<a href="javascript:void(0);" onclick="jsFunction()">read more</a>

jsFunction()是一个用于显示p-tag的占位符。你想用span-element怎么说: - )?