为什么要使用ADD_ACTION作为短码?

时间:2013-03-13 作者:Rolnin

我想创建shortcodes, 但有些教程是关于使用add_action:

add_action( \'init\', \'register_shortcodes\');
但我读了另一篇教程,作者没有使用它,只是把它放在functions.php:

add_shortcode( \'recent-posts\', \'recent_posts_function\' );
哪种方法是最好的,为什么要使用add_action?

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

如果你看看the Codex page about add_shortcode() 你看不到任何关于add_action() 在使用之前add_shortcode().

所以,你可以把你的add_shortcode() 直接进入您的functions.php. 我也是这么做的。

参见本文-WordPress Shortcodes: A Complete Guide 关于短代码和最佳实践的使用。

SO网友:cziko

有时需要使用“init”操作。例如,现在我主要基于小部件和自定义面板编辑主题。我试图添加自定义短代码,但没有执行任何操作,在“自定义”面板中保存内容时出错。操作可确保正确的功能执行顺序。它说:“嘿,短代码!首先我将加载最重要的函数,然后是你!”

SO网友:NJENGAH

不要重复上面答案中包含的太多内容;这只是一种最佳实践方法。我经常在插件开发中使用它,我需要像wppb.me 插件启动程序模板。

在加载程序中注册所有管理挂钩是有意义的。对于短代码,可以在钩子加载器方法中添加add\\u操作短代码钩子:

 /**
   * Register all of the hooks related to the admin area functionality
   * of the plugin
   */ 

     private function define_admin_hooks() {

     $plugin_admin = new instance( $this->get_plugin_name(), $this->get_version() );

     $this->loader->add_action( \'init\', $plugin_admin, \'register_shortcodes\');
}
这种方法的主要优点是易于代码维护,因为代码是模块化的。您可以在相同的方法中添加其他几个钩子,这使得跟踪和更改内容变得很容易,尤其是对于大型插件。

因此,它意味着在您想要使用的类中add_shortcode您不必在构造函数方法中运行操作挂钩,现在可以在自定义方法中使用它,如:

public function register_shortcodes(){

        add_shortcode(\'recent-posts\', array($this, \'recent_posts_function\'));

    }

结束

相关推荐

通过ShortCode属性传递标记

祝大家节日快乐。希望有人能帮助我思考我遇到的问题。我有一个插件Im building,允许用户从maps API中提取地址数据,即它验证地址,如果是业务,则提取标记图标、地址详细信息、web链接等,并构建一个短代码以在前端呈现地图。目前正在构建短代码,并通过tinyMCE模式窗口预览结果。创建地图标记内容(标记信息气泡)是导致我变灰的原因。我希望用户能够添加或操作此块的内容,但最终的结果是相当多的标记。到目前为止,我已尝试通过以下其中一个快捷码属性传递生成的标记:[my_gmaps id=\"map\"