将数据从外部api发送到wordpress数据库

时间:2015-07-26 14:19:06

标签: wordpress-plugin wordpress

我想创建一个wordpress插件,它将显示存储在wordpress数据库中的表的汇总信息。我的问题是如何使用wordpress方法处理来自远程服务的HTTP POST?

我正在寻找能够说明这一过程的教程。

我只是使用直接的php / mysql并将信息直接存储到表中,但我想这样做"正确"使用Wordpress清理数据并将项目保存在wordpress插件下。

1 个答案:

答案 0 :(得分:0)

你可以简单地使用wp_remote_post:

$response = wp_remote_post( $url, array(
    'method' => 'POST',
    'timeout' => 45,
    'redirection' => 5,
    'httpversion' => '1.0',
    'blocking' => true,
    'headers' => array(),
    'body' => array( 'username' => 'bob', 'password' => '1234xyz' ),
    'cookies' => array()
    )
);

if ( is_wp_error( $response ) ) {
   $error_message = $response->get_error_message();
   echo "Something went wrong: $error_message";
} else {
   echo 'Response:<pre>';
   print_r( $response );
   echo '</pre>';
}

收到数据并执行任何必要的修改后,您可以使用$ wpdb将它们插入到自定义表中:

global $wpdb;
$wpdb->insert( 
    'table', 
    array( 
        'column1' => 'value1', 
        'column2' => 123 
    ), 
    array( 
        '%s', 
        '%d' 
    ) 
);

这将需要创建一个自定义表,可以像这样创建:

global $wpdb;    
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
     $custom_table = $wpdb->prefix . 'custom_table_name';
        $sql = "CREATE TABLE IF NOT EXISTS $custom_table (
    id mediumint(9) NOT NULL,
    col1 varchar(50) NOT NULL,
    col2 varchar(500) NOT NULL,
    ) $charset_collate;";

        dbDelta($sql);

请参阅WordPress文档中的wp_remote_post,$ wpdb和wp_insert_post以获取更多信息