wordpress功能不起作用

时间:2014-03-23 16:10:12

标签: wordpress

我有一个表格可以抓取用户的数据并将其保存为博文。

表单操作转到此页面:

wp-content/plugins/formplugin/savepost.php

但是当我尝试按wp_insert_post($args)保存帖子时,在该页面中,会发生以下错误:

"Call to undefined function wp_insert_post() in D:\EasyPHP-5.4.0RC4\www\wp2\wp-content\plugins\formplugin\savepost.php on line 18".

有什么遗失吗?

if(isset($_POST['send'])){

    $args=array(
        'post_name'      => $_POST['postname'],
        'post_title'     => $_POST['postname'],
        'post_status'    => 'publish',
        'post_type'      => 'post',
        'post_excerpt'   => $_POST['postdesc']
    );
    wp_insert_post($args);
}

3 个答案:

答案 0 :(得分:1)

在外部文件中包含WordPress:

看起来您正在使用WordPress范围之外的外部文件。即使文件在plugins文件夹中,也不意味着WordPress必须知道它。

您可以将WordPress包含到外部文件中,添加以下内容:

<?php 
define( 'WP_USE_THEMES', FALSE );
require_once( '/path/to/your/wp-blog-header.php' );

位于文件顶部。 wp-blog-header.php应位于WordPress根文件夹中。

<强>替代:

但是既然你正在使用WordPress,为什么不构造一个pretty url并使用hook拦截表单发布,而不是指向外部文件?

需要考虑的事项:

您应该考虑使用filter_input代替$_POST

我还建议使用WordPress nonces

验证清理所有用户输入是一个很好的规则。 Here's这个问题的一个很好的起点。

答案 1 :(得分:0)

阅读错误消息会使错误变得非常清楚。

消息Call to undefined function表示在您要访问的文件中,该功能不存在。

因此,在savepost.php页面中没有名为wp_insert_post()的函数。

您需要添加此内容,或者您​​可以通过加载wpdb并使用该数据来发送数据。

在此处阅读更多内容:https://codex.wordpress.org/Class_Reference/wpdb

答案 2 :(得分:-1)

你的函数wp_insert_post()......它说它不存在或无法到达。