编辑页面时运行快捷代码

时间:2019-06-29 作者:Bud

我有一个只包含以下内容的页面:

[memberdirectory] [/memberdirectory]
它的目的是列出成员的姓名和地址。它可以毫无问题地加载和运行相关函数。我的问题是,当我去更改页面时,在加载页面进行编辑时会执行短代码。换句话说,当我在仪表板上选择要编辑的页面时。这种情况并不是致命的,只是一种不便。我一定不懂一些关于短代码以及它们何时运行的知识。任何帮助都将不胜感激。谢谢

1 个回复
SO网友:Antti Koskinen

我有几次遇到过类似的情况。在我的例子中,在文本编辑器上呈现的短代码是由短代码回显而不是返回其内容引起的。

如上所述add_shortcode Codex entry,

请注意,由shortcode调用的函数不应产生任何类型的输出。短代码函数应返回用于替换短代码的文本。直接生成输出将导致意外的结果。这类似于过滤器函数的行为方式,因为它们不应该在调用中产生预期的副作用,因为您无法控制从何时何地调用它们。

我的建议是,仔细检查短代码的输出,以便它返回内容,而不是重复它。

如果它在回显输出,而您不想重写所有内容,您可以将回显封装在输出缓冲区中,就像这样。

function some_shortcode( $atts, $content = null ) {

  // start output buffer, which will hold all the following echoed html
  ob_start();

  // old code echoing html

  // return html content from buffer and clear buffer
  return ob_get_clean();

}
如果这没有帮助,那么请共享您的代码,以便社区可以更好地查看它。

相关推荐

WP_LINK_PAGES‘下一页链接’的缩写

我想要“nextpagelink”短代码[nextpage_shortcode] 我可以将其放入内容中。我见过一些帖子说,由于Wordpress呈现内容的方式,你不能在内容中放置任何与wp\\U link\\u页面相关的内容。正如您所见,“nextpagelink”的文本会根据幻灯片的不同而变化。我希望短代码能够反映这一点。下面是我想做的事情的示意图:两个“开始”按钮都链接到第二张幻灯片。这就是我目前正在研究的内容:function nextpage_shortcode( $atts ) { wp_lin