我正在使用表达式引擎字段使用<pre>
元素和[code]
标记发布代码示例,但我也使用此字段作为摘录。在摘录中,我想要删除这些前置元素中的任何内容(或者在它到达<pre>
元素时以某种方式停止。有人知道如何执行此操作吗?这是我的摘录代码:
<p class="excerpt">{exp:trunchtml chars="300"}{code_content}{/exp:trunchtml}</p>
这是一个包含代码的示例条目:
</p>Blah blah blah Lorem Ipsum</p> <pre>[code]camera.position.set(0,20,35); [/code]</pre>
答案 0 :(得分:0)
这是一个非常具体的需求,我所知道的现有插件都不会这样做。你有两个选择:
创建一个专门的摘录字段(在制作更好的摘录和保持数据结构方面真的是最好的)。
或者,write your own plugin(真的不是很难)将获取您传递的内容,然后
在其上执行一些preg_replace()
以消除您的<pre>
元素及其所有内容,返回清理结果。
所以它看起来像这样:
<p class="excerpt">
{exp:trunchtml chars="300"}
{exp:my_plugin:replace_pre}{code_content}{/exp:my_plugin:replace_pre}
{/exp:trunchtml}
</p>
这一点PHP会在你的插件中为你带来魔力:
$content = $this->EE->TMPL->tagdata;
preg_replace('/<pre[^>]*>.*?<\/pre>/i', '', $content);
return $content;