将自定义创建的PHP页面中的数据插入wp_postmeta表

时间:2014-06-30 作者:Sanjay Nakate

我正在使用Wordpress网站,并在中创建了自定义页面/home/planmyme/public_html/php/ 使用名称response.php. 在这个页面上,我得到了一个要插入的值wp_postmeta 表(值示例:事务ID、采购ID、订单ID或项目名称),但我无法插入它。

我使用下面的代码作为测试。我不知道如何实现这一点,或者是否需要数据库连接来运行查询。

$metakey    = "_menu_item_type";
$metavalue  = "WordPress\' database interface is like Sunday Morning: Easy.";

$wpdb->query( $wpdb->prepare( 
    "
        INSERT INTO $wpdb->wp_postmeta
        ( post_id, meta_key, meta_value )
        VALUES ( %d, %s, %s )
    ", 
    10, 
    $metakey, 
    $metavalue 
) );
获取此错误

致命错误:对/home/planmyme/public\\u html/php/response中的非对象调用成员函数query()。php在线56

如果有人知道怎么做,请告诉我。

2 个回复
SO网友:s1lv3r

错误消息基本上是这样说的$wpdb 不是对象,因此无法对其调用任何方法。因为我们看不到$wpdb 是在你发布的源代码中定义的,很难说出更多细节。

您是否在外部文件中包含wordpress?您需要wp-load.php 在外部应用程序中使用wordpress函数和类。

SO网友:Knight

目前,您的PHP文件无法识别$wpdb对象。

要在PHP文件中使用WordPress函数,应首先通过在文件顶部添加以下内容来添加WordPress支持:

<?php require(\'/the/path/to/your/wp-blog-header.php\'); ?>
然后,您可以使用$wpdb-在定义它之后:

<?php global $wpdb; ?>
最后,您应该专门使用表前缀,或者让$wpdb来为您做。建议使用后者,以便表前缀的更改不会影响PHP文件。因此,您的SQL应更改为:

INSERT INTO $wpdb->postmeta
。。而不是$wpdb->wp_postmeta

结束

相关推荐

Max Posts and Memory Limit

所以我有一个自定义的帖子类型,它使用ACF元盒,包含750多篇帖子和grwoing。我得到了臭名昭著的白色死亡屏幕,因为PHP似乎已经耗尽了查询所有这些帖子和数据的内存限制。我设置了PHP。INI文件的最大执行时间和内存限制为-1 并将配置中的WP内存限制增加到define(\'WP_MEMORY_LIMIT\', \'4096M\');然而,当我试图查看自定义帖子类型时,在管理中仍然会收到一个白色的死亡屏幕。有没有关于如何修复/增加内存的想法?谢谢