更新Metabox帖子上的定制表

时间:2016-11-19 作者:Hub Lot

所以问题来了:我已经为我的帖子创建了一个metabox字段,我想让它在我的wp数据集中更新一个自定义表(wp\\U位置)。。。想法是用POST方法的值更新表,但由于某种原因,我似乎使用了错误的“wpdb”东西,每次更新时它都会崩溃。。。以下是我目前的代码:

add_action(\'add_meta_boxes\',\'initialisation_metaboxes\');
function initialisation_metaboxes() {
    add_meta_box(\'idMetaBox\',\'test metabox\',\'meta_function\',\'post\',\'side\',\'high\');
}

function meta_function(){
  echo \'<label for="my_field">Test field : </label>\';
  echo \'<input id="my_field" type="text" name="my_field" />\';
}

function save_metaboxes(){
  if(isset($_POST[\'my_field\'])){
    $wpdb->update(\'wp_location\', array(\'latitude\' =>  $_POST[\'my_field\']), array(\'refPost\' => 198) );
  }

}

add_action(\'save_post\',\'save_metaboxes\');
我对Wordpress和metaboxes很陌生,但我只是在几个小时的论坛研究后找不到解决方案。。。

我的表在PhpMyAdmin中运行,目前只包含3个字段:

idLoc(由PhpMyAdmin自动递增)

  • refPost(我已经在这里手动插入了值-198-但必须有一些简单的方法来检索它)
  • 纬度(目前是一个简单的文本字段)
    • 感谢您的帮助

      我知道我可以使用post\\u元表和函数,但我需要一个更复杂的数据库结构。。。

    1 个回复
    最合适的回答,由SO网友:TheDeadMedic 整理而成

    Variable scope - 你需要全球化$wpdb 在您的函数中使用它之前:

    function save_metaboxes() {
        global $wpdb;
    
        // Rest of your code
    }
    

    相关推荐

    从wpdb访问底层mysqli对象以进行自定义查询是否安全?

    我正在编写一个自定义插件(定制,用于1个客户端,不用于发布和一般消费),需要访问自定义表。一般来说,对于WP,我遵循的原则是在可能的情况下使用更高级别的API,因此很少需要使用\\wpdb。现在我确实有了需求,我发现它是多么古老!通过查看源代码,我似乎可以确定它使用的是mysqli(因为插件需要php 7.1,我们也控制服务器),所以我想为什么不将其用于我的自定义表逻辑?我写了一个小包装:<?php namespace PluginNamespaceHere\\DB; &#