我正在尝试更新我的插件,使其更加用户友好。我想要实现的一件事是,我希望我的插件输出(例如描述字段)使用所有普通wordpress帖子和页面的全部功能(使用TinyMCE和循环输出)。
我找到一篇关于使用tinyMCE的好文章right here 但我仍然停留在其他插件对循环格式的使用上。
举个例子:我使用一个下载管理器插件。在我可以写的自定义帖子和页面中[download id=1]
它通过关联的插件很好地格式化。我想在我的自定义插件中也有这个功能。
现在,这是我进行插件输出的方式:
add_filter(\'the_content\', array(&$myclass, \'myclass_callback\'), 7);
myclass\\u回调如下:
public function myclass_callback($sIn)
{
if (isset($_GET[\'myc_id\']) && is_numeric($_GET[\'myc_id\'])) {
$sOut = $this->myclass_detail((int)$_GET[\'myc_id\']);
return str_replace(\'[[MYCLASS_TAG]]\', $sOut, $sIn);
}
$sOut = $this->myclass_index();
return str_replace(\'[[MYCLASS_TAG]]\', $sOut, $sIn);
}
而且这种方法并没有带来我想要的结果:)所以我正试图找出如何做到这一点,但显然我不是一个好的谷歌搜索者
任何链接或关键字为我搜索将不胜感激。提前感谢!
最合适的回答,由SO网友:Sam 整理而成
我的问题的解决方案是让我的插件输出通过do_shortcode()
-本文指出的WordPress的功能:Using Shortcodes Everywhere
我更新了插件,使其也使用了短代码,所以现在我的输出如下所示:
// Add this upon plugin initialization
add_shortcode( \'dosomethingawesome\', array( &$this, \'output_callback\') );
/**
* Plugins output
*
* Fetches the output from handle_callback() and then runs it through the
* do_shortcode() function to work with other plugins, too
*
* @uses do_shortcode()
* @access public
* @return string
*/
// {{{ output_callback()
public function output_callback() {
$sOutput = $this->handle_callback(); //returns the string of my plugins action
return do_shortcode($sOutput);
}
// }}}