我想创建一个wordpress插件,它将显示存储在wordpress数据库中的表的汇总信息。我的问题是如何使用wordpress方法处理来自远程服务的HTTP POST?
我正在寻找能够说明这一过程的教程。
我只是使用直接的php / mysql并将信息直接存储到表中,但我想这样做"正确"使用Wordpress清理数据并将项目保存在wordpress插件下。
答案 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以获取更多信息