因此,我有一个表单,可以使操作跳转到另一个php页面。
在那里,我的php代码尝试上传帖子。我得到以下错误:
致命错误:调用未定义的函数wp\\u insert\\u post()
PHP代码:
ini_set(\'display_errors\', 1);
ini_set(\'display_startup_errors\', 1);
error_reporting(E_ALL);
if( \'POST\' == $_SERVER[\'REQUEST_METHOD\'] && !empty( $_POST[\'action\'] ) && $_POST[\'action\'] == "upload_ugc") {
if($_POST["editindication"] == \'newpost\'){
$post_array = array(
\'post_title\' => $_POST["post_title"],
\'post_content\' => \'\',
);
$post_id = wp_insert_post( $post_array, true );
}
最合适的回答,由SO网友:kovshenin 整理而成
如果要在裸PHP文件中使用WordPress函数,则必须加载WordPress环境:
require_once \'/path/to/wp-load.php\';
也就是说,最好不要在WordPress之外通过单独的PHP文件来处理事情,而是使用插件并在适当的操作上启动代码。您可以使用页面模板或短代码呈现表单,然后在
init
或
template_redirect
从插件中挂钩:
add_action( \'init\', function() {
if ( empty( $_POST[\'action\'] ) || $_POST[\'action\'] != \'upload_ugc\' )
return;
// Your wp_insert_post statement
wp_redirect( home_url( \'/upload-success/\' ) );
die();
});
此外,在使用用户输入时,不要忘记安全性,尤其是对于登录的用户。在你的情况下,你需要
wp_nonce_field 至少,并可能通过
wp_kses.