代码之家  ›  专栏  ›  技术社区  ›  Steven

如何从WP模板中的插件调用函数?

  •  5
  • Steven  · 技术社区  · 14 年前

    我现在使用的代码是:

    include_once(WP_CAL_PLUGIN_DIR.'eventcal.class.php');
    
    $calendar = new EventCalendar();
    $events = $calendar->getMultipleEvents('5');
    
    (...)
    
    <table>
    <?php foreach($events as $event) : ?>
      <tr>
        <td><span><?php echo $calendar->formatEventTime($event->startTime,'dm'); ?></span></td>
        <td><span><?php echo $calendar->formatEventTime($event->startTime,'time'); ?></span></td>
        <td><?php echo $event->name; ?></td>
      </tr>
    <?php endforeach; ?>
    </table>
    

    有没有一种方法可以在我的插件中调用函数而不必包含WP插件和创建新的类实例?

    2 回复  |  直到 14 年前
        1
  •  9
  •   John P Bloch    14 年前

    要在模板内执行shortcode,请使用函数 do_shortcode('[my-shortcode-handle]') . 你的短代码需要像平常一样注册( see WordPress codex on shortcode API

    echo do_shortcode( '[my-shortcode foo="bar"]Shortcode content[/my-shortcode]' );
    

    另外,记住回显返回(或者至少将其赋给变量),因为它只返回短代码的输出。

        2
  •  3
  •   Todd Moses    14 年前

    发件人: http://codex.wordpress.org/Plugin_API

    WordPress提供了钩子,允许你的插件“钩住”WordPress的其余部分;也就是说,在特定时间调用插件中的函数,从而启动插件。有两种挂钩:

    1. Actions:Actions是WordPress核心在执行期间或特定事件发生时在特定点启动的钩子。您的插件可以使用Action API指定在这些点执行一个或多个PHP函数。
    2. 过滤器:过滤器是WordPress启动的钩子,用于在将文本添加到数据库或发送到浏览器屏幕之前修改各种类型的文本。您的插件可以指定在这些时候使用Filter API执行一个或多个PHP函数来修改特定类型的文本。

    操作由WordPress中发生的特定事件触发,例如发布文章、更改主题或显示管理面板的页面。您的插件可以通过执行PHP函数来响应事件,该函数可以执行以下一个或多个操作:

    * Modify database data
    * Send an email message
    * Modify what is displayed in the browser screen (admin or end-user) 
    

    实现这一点的基本步骤(详细描述如下)是:

    1. 在插件文件中创建事件发生时应该执行的PHP函数。
    2. 通过调用add\u action()钩住WordPress中的操作

    function email_friends($post_ID)  {
        $friends = 'bob@example.org,susie@example.org';
        mail($friends, "sally's blog updated", 
          'I just put something on my blog: http://blog.example.com');
        return $post_ID;
    }
    

    连接到WordPress

    在定义了函数之后,下一步就是“hook”或者用WordPress注册它。为此,请在插件文件的全局执行空间中调用add\u action():

    add_action ( 'hook_name', 'your_function_name', [priority], [accepted_args] );
    

    哪里:

    钩子名称 WordPress提供的动作钩子的名称,它告诉你的函数应该与什么事件相关联。 在由hook\u name指定的事件之后要执行的函数的名称。这可以是一个标准的php函数,WordPress内核中的函数,或者是您在插件文件中定义的函数(比如上面定义的“email\u friends”)。 优先 一个可选的整数参数,可用于指定与特定操作关联的函数的执行顺序(默认值:10)。较低的数字对应于较早的执行,具有相同优先级的函数按其添加到操作的顺序执行。

    在上面的示例中,我们将在插件文件中放置以下行:

    add_action ( 'publish_post', 'email_friends' );
    
    推荐文章