我对Expression Engine比较陌生,而且我正在学习它,我看到WordPress已经有一段时间缺少了一些东西。对我来说很重要的是短代码,因为我将使用这些代码来允许CMS用户使用其他内容放置更复杂的内容。
除了即将推出的私有测试版插件外,我在EE中看不到任何与此类似的内容。作为初步测试,我试图通过在内容字段中使用分隔字符串(例如#foo#)来伪造短代码,然后使用正则表达式将它们拉出并将它们传递给可以从中检索内容的函数。 EE的数据库。
这让我想到第二个问题,即在查看EE的API文档时,似乎没有一种以编程方式检索通道条目的简单方法(考虑类似于WP的内置get_posts函数)
所以我的问题是:
a)可以这样做吗? b)如果是这样,我接近它的方法是否合理?或者我的方法中是否有一些愚蠢明显的东西?
重申一下,我的主要目标是让一些方法允许管理内容的人在其内容中删除代码,这些代码将替换为频道内容。
感谢您提供任何建议或帮助。
答案 0 :(得分:3)
以下是您正在寻找的功能的简单示例。
1)首先安装Low Replace。
2)创建两个名为gv_hello和gv_goodbye的全局变量,其值为" Hello"和#34;再见"分别
3)将此文本放入条目正文:
[say_hello]
很高兴见到你。[say_goodbye]
4)将此项放入模板中,将Low Replace标记包裹在您的身体字段周围。
{EXP:low_replace 找到=" [say_hello] | [say_goodbye]" 替换=" {gv_hello} | {gv_goodbye}" 多个=#&34;是" } {身体} {/ EXP:low_replace}
5)它应该将其输出到您的浏览器中:
您好
很高兴见到你。再见
显然,这是一个非常简单的例子。您可以将完整的HTML放入全局变量中。例如,我们使用它来渲染复杂的交互式图形,该图形不可编辑,但可以由任何编辑器轻松地放入页面中。
不幸的是,由于解析订单问题,EE标签在全局变量中不起作用。如果您的短代码输出中需要EE标记,则需要使用Low Variables addon而不是Global Variables。
答案 1 :(得分:1)
继续评论:
您是否有想要支持/包含的短代码类型的示例?因为我怀疑是否可以从文本字段或wysiwyg-field控制页面布局。
如果您希望编辑者能够调整布局或在页面上显示/隐藏额外部分,让他们访问频道中的一些额外字段,则(imo)更易于管理且面向未来。例如,某些选择字段,关系(或播放)字段或矩阵,让他们选择要在页面上包含/排除哪些部分,或从另一个频道中选择哪个部分来提取内容。
正如评论中所述:我完全理解你是否想用一些#foo#标签替换来自另一个领域的图像或数据(参见其他答案:nsm-transplant,low_replace)。但是,让编辑访问短代码并将其删除,就像编写模板引擎来为ee-template-engine生成ee-template代码。
使用一些自定义字段让编辑选择要嵌入的部分,我认为更易于管理。
话虽这么说,你可以制作一个插件来解析textareas内容中的短代码,然后编程很多,从你想要支持的其他模块中获取数据。对于通道条目,您可以通过objectiveHTML构建通道数据库。 https://github.com/objectivehtml/Channel-Data
答案 2 :(得分:0)
我听到你了,我也错过了WP的短代码 - 尽管他们如此轻松地工作的原因是the_content()
无处不在。凭借EE的极大灵活性,减少了一揽子解决方案。
我建议看NSM Transplant。它应该适合你。
答案 3 :(得分:0)
还有一个名为Shortcode的插件,你可以在这里找到 Devot-ee 页面引用:
Shortcode旨在允许作者和作者更加动态地使用内容 编辑,允许注入可重复使用的内容甚至是 整个功能部分进入EE的任何领域