使用wordpress插件时未呈现简单短代码
我最近接管了Wordpress网站的开发,使用的是我不熟悉的木材。我正在尝试使用一个新的插件和附带的短代码,这当然不起作用 我已经研究了几个小时,似乎没有一个简单的答案。要使用这样一个简单的短代码:使用wordpress插件时未呈现简单短代码,wordpress,twig,timber,Wordpress,Twig,Timber,我最近接管了Wordpress网站的开发,使用的是我不熟悉的木材。我正在尝试使用一个新的插件和附带的短代码,这当然不起作用 我已经研究了几个小时,似乎没有一个简单的答案。要使用这样一个简单的短代码: {{post.custom_shortcode_field|shortcodes}} {{ post.content|wpautop|e('wp_kses_post') }} [sp_常见问题分类=7] 我真的需要在functions.php中创建一个自定义的短代码函数,为它添加一些模板文件,等
{{post.custom_shortcode_field|shortcodes}}
{{ post.content|wpautop|e('wp_kses_post') }}
[sp_常见问题分类=7]
我真的需要在functions.php中创建一个自定义的短代码函数,为它添加一些模板文件,等等吗?这似乎违反了Twig让事情变得“简单”的直觉
除非我遗漏了一些明显的东西,否则这方面的文档还不够详细。如果您想从自定义字段渲染短代码,可以这样做:
{{post.custom_shortcode_field|shortcodes}}
{{ post.content|wpautop|e('wp_kses_post') }}
摘自文件:
或者,如果它是从主编辑器提交的,请尝试:
{{ post.content|wpautop }}
如果要从自定义字段渲染短代码,可以按如下方式执行:
{{post.custom_shortcode_field|shortcodes}}
{{ post.content|wpautop|e('wp_kses_post') }}
摘自文件:
或者,如果它是从主编辑器提交的,请尝试:
{{ post.content|wpautop }}
对于OP来说,这似乎为时已晚,但对于任何遇到这一点的人来说:正确的解决方案都结合在Luckyfella的答案和对它的评论中。我想如果OP尝试了Luckyfella的最后建议,他会成功的 您需要将{{post.post_content | wpsautop | shortcodes}}*放入您的细枝文件中。默认情况下,这将呈现自动段落和放入主WYSIWYG编辑器中的短代码
*post只是TimberPost中的常规默认名称,您还需要检查PHP模板文件以查看Timber上下文和Timber post变量的调用情况。对于OP来说,这似乎是一个页面,而不是帖子。对于OP来说,这似乎为时已晚,但对于其他任何遇到这一点的人来说:正确的解决方案结合在Luckyfella的答案和对它的评论中。我想如果OP尝试了Luckyfella的最后建议,他会成功的 您需要将{{post.post_content | wpsautop | shortcodes}}*放入您的细枝文件中。默认情况下,这将呈现自动段落和放入主WYSIWYG编辑器中的短代码
*post只是TimberPost中的常规默认名称,您还需要检查PHP模板文件以查看Timber上下文和Timber post变量的调用情况。对于OP,它似乎是页面,而不是帖子。我只是想在这里插话 post.post|content包含应用任何筛选器之前数据库中包含的原始数据,post.content包含应用筛选器之后的数据,因此不需要在该数据库上运行筛选器|快捷码 我之所以使用post.post_内容是出于某种原因,并发现了这个问题,是因为我试图找出我的短代码不起作用的原因,因此这促使我做了更多的研究 现在,在阅读这个问题的答案时,我并不十分满意,因为我也一直在使用| e'wp_kses_post'对我输出的数据进行分析,但如果我使用类似的方法:
{{post.custom_shortcode_field|shortcodes}}
{{ post.content|wpautop|e('wp_kses_post') }}
…很明显,我将通过处理短代码获得正确的过滤数据,但同时也将通过e'wp_kses_post'过滤器去除任何不允许的数据
当然,您可以在这个过滤器中添加允许的标记,但显然这不太现实,因为您不知道短代码将输出什么输出,也不想继续更新它
所以,我们有一个问题。。。我们想允许解析短代码,但同时也要对内容进行SANATIZE—该怎么办
解决方案如下:
在这里,我们使用post.post_内容,因此我们在过滤内容之前就有了内容,然后在wpautop过滤之后,它后面跟着e'wp_kses_post';这将对数据进行SANATIZE,但重要的是它将保留短代码,因此它们仍然可以被过滤
最后,我们使用apply_filters过滤器为内容应用过滤器,然后处理应用于_内容的所有过滤器,包括解析短代码
虽然你已经在使用你了,但是你必须考虑到上面的情况会如何应用。 < P>只是想我会在这里插手。< /P> post.post|content包含应用任何筛选器之前数据库中包含的原始数据,post.content包含应用筛选器之后的数据,因此不需要在该数据库上运行筛选器|快捷码 我之所以使用post.post_内容是出于某种原因,并发现了这个问题,是因为我试图找出我的短代码不起作用的原因,因此这促使我做了更多的研究 现在,在阅读这个问题的答案时,我并不十分满意,因为我也一直在使用| e'wp_kses_post'对我输出的数据进行分析,但如果我使用类似的方法:
{{post.custom_shortcode_field|shortcodes}}
{{ post.content|wpautop|e('wp_kses_post') }}
…那么很明显我会得到
使用已处理的短代码更正已过滤的数据,但同时也会使用“wp_kses_post”筛选器删除任何不允许的数据
当然,您可以在这个过滤器中添加允许的标记,但显然这不太现实,因为您不知道短代码将输出什么输出,也不想继续更新它
所以,我们有一个问题。。。我们想允许解析短代码,但同时也要对内容进行SANATIZE—该怎么办
解决方案如下:
在这里,我们使用post.post_内容,因此我们在过滤内容之前就有了内容,然后在wpautop过滤之后,它后面跟着e'wp_kses_post';这将对数据进行SANATIZE,但重要的是它将保留短代码,因此它们仍然可以被过滤
最后,我们使用apply_filters过滤器为内容应用过滤器,然后处理应用于_内容的所有过滤器,包括解析短代码
<>虽然你已经在使用了,但是你必须考虑上面的情况会如何应用到你的情况。 你可以尝试使用重力形式的短代码:这个例子。
{% filter shortcodes %}
[gravityforms id="1"]
{% endfilter %}
您可以使用重力表单短代码尝试此示例:
{% filter shortcodes %}
[gravityforms id="1"]
{% endfilter %}
看起来您想在post.content之外使用短代码
您可以使用{%function'do_shortcode','[shortcode here]'%}在模板中的任何位置处理短代码。读起来就像您想在post.content之外使用短代码一样
您可以使用{%function'do_shortcode','[shortcode here]'%}在模板中的任何位置处理短代码。是的,我已经阅读了文档,但我不能将其放在常规内容区域,可以吗?它在那里没有任何作用。你可以在你的小树枝模板文件中使用这行代码。要对短代码进行快速测试:匹配模板中至少应该有{{post.content}}。如果| wpautop筛选器没有准备好,请尝试添加它。在我的模板文件中,它有{{page.post_content}},我的理解输出的值与数据库中存储的值完全相同。我尝试将其更改为{post.content{wpsautop}},但页面上没有呈现任何内容,包括任何纯文本。{post.content{wpsautop}不起作用,但{page.content{124; wpsautop}起作用,尽管它仍然输出原始内容,但没有呈现任何内容。如果编写{page.content}shortcode}会发生什么?是的,我已经阅读了文档,但我不能把它放在常规内容区,对吗?它在那里没有任何作用。你可以在你的小树枝模板文件中使用这行代码。要对短代码进行快速测试:匹配模板中至少应该有{{post.content}}。如果| wpautop筛选器没有准备好,请尝试添加它。在我的模板文件中,它有{{page.post_content}},我的理解输出的值与数据库中存储的值完全相同。我试着把它改成{{post.content{wpsautop}},但是页面上没有呈现任何内容,包括任何纯文本。{{post.content{wpsautop}不起作用,但是{page.content{124; wpsautop}起作用,尽管它仍然输出原始内容,但没有呈现任何内容。如果你写{page.content}shortcodes},会发生什么呢?我确实最终找到了答案,我应该回来公布解决方案。它就像{{page.content}wpautop | shortcodes}一样简单。当我第一次开始使用它时,我并没有真正理解细枝模板,我想没有人意识到我需要一个多么简单的解决方案,哈哈。@rickibarnes我有一个问题与你在解决方案中提到的类似。我使用的是木材和细枝模板,我的帖子使用single.twig文件显示。我在所见即所得编辑器的博文内容博客中有[gallery link=file size=medium ids=594593592]短代码。但是你提到的解决方案对我不起作用。实际上我最终还是找到了答案,我应该回来发布解决方案。它就像{{page.content}wpautop | shortcodes}一样简单。当我第一次开始使用它时,我并没有真正理解细枝模板,我想没有人意识到我需要一个多么简单的解决方案,哈哈。@rickibarnes我有一个问题与你在解决方案中提到的类似。我使用的是木材和细枝模板,我的帖子使用single.twig文件显示。我在所见即所得编辑器的博文内容博客中有[gallery link=file size=medium ids=594593592]短代码。但是你提到的解决方案对我不起作用。