WordPress插件扩展而不改变核心

时间:2014-08-07 06:31:34

标签: wordpress wordpress-plugin

我正在使用WordPress插件订阅时事通讯。我想更改发送给用户的邮件格式但不想编辑任何升级插件的核心原因所有更改都会被刷新,所以任何人都知道如何正确编辑插件文件而不更改其核心文件感谢您的帮助。

<body style="background-color: #ddd; font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 14px; color: #666; margin: 0 auto; padding: 0;">
        <br>
        <table align="center">
            <tr>
                <td style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 14px; color: #666;">
                    <div style="text-align: left; max-width: 500px; border-top: 10px solid #43A4D0; border-bottom: 3px solid #43A4D0;">
                        <div style="padding: 10px 20px; color: #000; font-size: 20px; background-color: #EFEFEF; border-bottom: 1px solid #ddd">
                            <?php echo get_option('blogname'); ?>
                        </div>
                        <div style="padding: 20px; background-color: #fff; line-height: 18px">

                            <?php echo $message; ?>

                        </div>

                    </div>
                </td>
            </tr>
        </table>
    </body>

这个代码我不想要博客名称,但想要博客的标识,并且想要更改直接在html标签上给出的那种风格。

function mail($to, $subject, $message) {

        ob_start();
        include NEWSLETTER_DIR . '/subscription/email.php';
        $message = ob_get_clean();

        Newsletter::instance()->mail($to, $subject, $message);
    }

这可能是包含电子邮件模板文件的功能。

1 个答案:

答案 0 :(得分:0)

您想使用filters and actions,可以通过插件指定,以便其他脚本/插件有机会使用您的插件。

更具体地说,希望你能找到这样的东西:

$email_body = apply_filters( 'amazingnewsletter_email_body', $email_body );

这意味着您可以在自己的插件/主题中过滤(也就是更改)变量$ email_body。如果您只想在当前网站上使用它,最简单的方法是将它们直接放在functions.php中。

但是,您要使用的实际挂钩完全取决于插件。即使这样,该插件也可能无法通过动作或过滤器来编辑正文。

我建议您阅读有关操作和过滤器的WordPress.org codex,以便更好地了解它们的工作原理。它们非常强大。