Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用wordpress插件时未呈现简单短代码_Wordpress_Twig_Timber - Fatal编程技术网

使用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中创建一个自定义的短代码函数,为它添加一些模板文件,等

我最近接管了Wordpress网站的开发,使用的是我不熟悉的木材。我正在尝试使用一个新的插件和附带的短代码,这当然不起作用

我已经研究了几个小时,似乎没有一个简单的答案。要使用这样一个简单的短代码:

{{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]短代码。但是你提到的解决方案对我不起作用。