检测某个页面中是否包含插件

时间:2012-02-09 作者:Marcos

我正在开发一个包含插件的主题。其中一个插件是联系人表单。这个插件有一个关联代码来验证输入数据。因为我不知道在什么页面中添加了联系人表单。。。我想找到一种正确的方法来检测当前页面中是否包含插件。

示例:第页。php

<?php get_header(); ?>

<?php if( is contact form included ) : ?>
    //include php form valdiation...
<?php endif; ?>

//page content code ...

<?php get_footer(); ?>
Note: 我不想检查插件是否已激活。插件包含在主题中,因此处于活动状态。我想检测当前是否正在使用,例如在页面中。php。问题应该是仅当页面包含联系人表单时才包含php表单验证。

欢迎提出任何建议或建议:)

谢谢

2 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

如果我理解正确,您希望包含一个验证表单输入的php文件,但仅当您需要实际验证某些内容时?

在这种情况下,您不需要检查某个页面上是否存在联系人表单,只需检查表单数据是否已发布。您只需向表单中添加一个隐藏字段,该字段具有唯一标识符:

 <input type="hidden" name="my_plugin_contact_form" value="true"/>
这只是为了让我们知道何时发布了插件表单中的数据:

<?php if(!empty($_REQUEST[\'my_plugin_contact_form\'])) : ?>
    //perform validation
<?php endif; ?>
我注意到您希望在页面模板中包含验证检查。相反,我建议您将验证包装在一个函数中,并将其挂接到如下内容上init.

最后一点注意:这并不能替代使用nonce。上述检查只是为了让我们知道需要验证-您仍应检查:

数据是否来自我们的表单

  • 权限:用户是否有权发送此数据?No.2此处可能不太相关。

  • SO网友:Wyck

    您可以使用get shortcode regex 如果你的插件使用了短代码,但老实说,这是一个黑客解决方案,那么检测应该在插件本身或使用斯蒂芬·哈里斯的建议。

    结束

    相关推荐

    __FILE__ in WordPress plugins

    我正在使用Sidebar Generator 在我所有的主题中。该插件在“plugins”目录下正常工作,但我想以某种方式将其嵌入到我的主题中,因此它不会显示在已安装的插件列表中。我刚刚复制了sidebar\\u生成器。php(幸运的是,整个代码都在一个文件中)到mytheme/插件,并将其包含在函数中。phprequire_once (MY_PLUGINS . \'/sidebar_generator.php\'); 现在,它适用于所有其他插件,但不适用于这个插件!这样,当我点击“侧栏”时