【问题标题】:custom form handling wordpress自定义表单处理 wordpress
【发布时间】:2015-10-27 23:23:41
【问题描述】:

我之前已经看到过这个问题,但是其他问题没有回答我的问题。

我有一个插件,可以通过 wordpress 将信息保存到自定义表格设置中。

这个插件只能通过管理面板访问。

然后使用 register_option 替代我需要使用自定义表,因为有关系数据

我可以访问我的 form-handler.php,但是它无法访问 wordpress 函数

<form method="post" action="<?php echo $this->plugin_uri.'includes/form-handler.php';?>">
    <input type="submit"/>
</form>

我想知道除了注册选项之外是否还有其他方法可以实现这样的功能

register_form('some form', array($this, 'sanitize_form'));

并在表单中调用另一个函数来识别它

<form action="options.php" method="post">
    <?php form_details('some form');
    <input type="submit"/>
</form>

有点像设置 API 的工作方式,是否有任何适当的方法可以做到这一点,或者我将不得不稍微破解设置 API 以使其以这种方式工作......

【问题讨论】:

  • form-handler.php 无法访问 WordPress 功能?它是如何包含在流程中的?
  • 你看上面的代码了吗?
  • @Stefan Dochow 击中了我的意思,虽然方法不同。我打算告诉你通过require_once()form-handler.php 加载到页面模板或类似的东西中,这将允许它访问WordPress 函数、类和方法。

标签: php wordpress


【解决方案1】:

如果直接调用form-handler.php文件,很明显随时都没有加载Wordpress代码。它只是你的代码。 您可以做的一件事是在表单处理程序文件的开头添加以下行:

define('WP_USE_THEMES', false); // prevents Wordpress from running its usual init stuff
require_once($pathToWordpress . '/wp-blog-header.php'); // loads Wordpress

之后你就可以使用 WP 自带的所有核心功能了

问候,

斯蒂芬

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 2016-12-18
    • 2013-07-27
    • 2011-11-27
    相关资源
    最近更新 更多