Using shortcodes in PHP

时间:2012-11-19 作者:user668499

我试图在我的页面中使用短代码,我从一个简单的测试开始。

在里面functions.php:

function HelloWorldShortcode() {
    return \'<p>Hello World!</p>\';
}
add_shortcode(\'helloworld\', \'HelloWorldShortcode\');
在中index.php:

[helloworld]
这不会产生<p>Hello World!</p>. 相反,我只是得到了文本[helloworld].

如何让短代码在PHP文档中工作?

3 个回复
最合适的回答,由SO网友:Oleg Butuzov 整理而成

参考Shortcodes API 你可以做到

echo do_shortcode(\'[helloworld]\');
如果你的短码不在帖子里。或者你可以

echo apply_filters(\'the_content\', \'[helloworld]\');
但这也会带来其他过滤器来处理shorcode返回html。

SO网友:stealthyninja

使用

echo do_shortcode( \'[helloworld]\' );
如果要在模板/PHP代码中使用它。

SO网友:fuxia

Shortcodes 通过函数解析do_shortcode(). 在某些情况下,此函数会自动作为回调应用,例如当您使用the_content().

要调用短代码解析器,请使用以下内容:

echo do_shortcode( \'I want to say: [helloworld]\' );
但我不会用这样的短代码,calling the handler 没有do_shortcode() 速度更快,更容易阅读。

结束

相关推荐

Add_ShortCode()在函数内不起作用

我有一个自定义的帖子类型bhour, 带字段bh_shortcode. 保存这种类型的帖子时,我希望它根据帖子的值bh_shortcode.如果bh_shortcode 是“test”,当一个[测试]快捷码标记出现在一个普通的post类型上时,不会发生任何事情--[测试]文本不会被替换。如果我放置add_shortcode(\'test\',\'save_bhour_details\'); 在功能之外,将替换[测试]文本。如何使用add_shortcode 函数内部的另一个函数?function bhou