我在wordpress站点上创建了一个表单,一个处理位于functions.php中的数据的函数,以及一个action php文件。我已经测试了处理功能,并且知道它可以工作,但是我很难获得与wordpress通信的所有东西。
update_item_meta.php位于我的主题目录中。
表单开始标记
<form method="post" id="project-info" action="/wp-content/themes/Avada/update_item_meta.php">update_item_meta.php
<?php
//connect to WP
define('WP_USE_THEMES', false);
require('../../../wp-load.php');
//call function from functions.php to process form data
update_item_meta_data();
?>注意: wp-load.php位于主站点根目录中。
如果有人能帮我,我会很感激的。如果我不得不猜测,无论是表单操作中的update_item_meta.php路径还是update_item_meta.php,这都是一个问题,但我还没有弄清楚。
发布于 2016-02-20 19:46:50
action="/wp-content/themes/Avada/update_item_meta.php"
显然,您不会直接加载wp,直接调用php文件,并且使用相对路径加载wp是有问题的。
在wp中处理表单的最佳方法是将其发送到同一个url:
action="#"有一个隐藏的输入,用于唯一的字段来标识您的表单,并在您的函数文件中使用一个函数来获取post操作.
如果($_POST‘唯一’){ require_once 'yourfile.php';//或您在这里的表单进程代码}action="#"和放置代码来处理模板文件中的帖子(不是wp方式,但有助于防止加载与页面无关的代码。这两种方式都将为您加载wp,而无需手动加载。
https://stackoverflow.com/questions/35526887
复制相似问题