Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用wp\u insert\u post和SQL查询填充Wordpress帖子_Php_Mysql_Sql_Wordpress - Fatal编程技术网

Php 如何使用wp\u insert\u post和SQL查询填充Wordpress帖子

Php 如何使用wp\u insert\u post和SQL查询填充Wordpress帖子,php,mysql,sql,wordpress,Php,Mysql,Sql,Wordpress,我正在从事一个项目,在这个项目中,我希望使用外部数据库中的SQL查询以编程方式创建wordpress帖子。我已经能够填充HighCharts图形,并以表格格式显示数据,使用PHP查询SQL数据库。但是,我不知道如何以同样的方式使用wp_insert_post。我也不确定我应该把这个代码放在哪里。非常感谢您的帮助!这是我的PHP <?php /** * Plugin Name: Post Creator * Description: Matt's Post Creator * Ver

我正在从事一个项目,在这个项目中,我希望使用外部数据库中的SQL查询以编程方式创建wordpress帖子。我已经能够填充HighCharts图形,并以表格格式显示数据,使用PHP查询SQL数据库。但是,我不知道如何以同样的方式使用wp_insert_post。我也不确定我应该把这个代码放在哪里。非常感谢您的帮助!这是我的PHP

<?php
/**
 * Plugin Name: Post Creator

 * Description: Matt's Post Creator
 * Version: 0.2
 * Author: Matt 
 * Author URI:
 * License: GPLv2
 */

/**
 * Enable PHP in Widgets
 */

$conzz = mysql_connect("localhost","database","databasepassword");





if (!$conzz) {


  die('Could not connect: ' . mysql_error());


}





mysql_select_db("chiensi_testing", $conzz);




$resultzz = mysql_query("SELECT T1.ID, REBATE_CODE, LONG_DESC, INCENT_TECH_ID, UPGRADE_TECH FROM T_L_INCENTIVES T1 INNER JOIN T_L_INCENT_TECH T2 ON T1.L_INCENT_TECH = T2.ID INNER JOIN T_LIGHTING_TYPE T3 ON T2.E_LIGHTING_TYPE_ID = T3.ID");



while($row = mysql_fetch_array($resultzz)) {


  global $user_ID;
$new_post = array(
'post_title' =>  $row['REBATE_CODE'] ,
'post_content' =>  $row['LONG_DESC'] ,
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => $user_ID,
'post_type' => 'post',
'post_category' => array(10)
);
$posts_array[]=$new_post;

}

mysqli_close($conzz);

foreach ( $posts_array as $post ) {

$post_id = wp_insert_post($post);
};


?>

在下面的评论之后编辑:

在尝试调用wp_insert_post之前,请尝试终止与第一个数据库的连接

$conzz = mysql_connect("localhost","database","databasepassword");
 if (!$conzz) {
die('Could not connect: ' . mysql_error());


}
mysql_select_db("database_name", $conzz);

 $resultzz = mysql_query("SELECT T1.ID, REBATE_CODE, LONG_DESC, INCENT_TECH_ID, UPGRADE_TECH FROM T_L_INCENTIVES T1 INNER JOIN T_L_INCENT_TECH T2 ON T1.L_INCENT_TECH = T2.ID INNER JOIN T_LIGHTING_TYPE T3 ON T2.E_LIGHTING_TYPE_ID = T3.ID");

$posts_array = array();

while($row = mysql_fetch_array($resultzz)) {


  global $user_ID;
$new_post = array(
'post_title' =>  $row['REBATE_CODE'] ,
'post_content' =>  $row['LONG_DESC'] ,
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => $user_ID,
'post_type' => 'post',
'post_category' => array(10)
);
$posts_array[]=$new_post;

}

mysqli_close($conzz);

foreach ( $posts_array as $post ) {

$post_id = wp_insert_post($post);
};



?>

你好,谢谢你的帮助!我之所以设置与数据库的连接,是因为它是一个与Wordpress数据库分离的外部数据库。我需要从这个单独的数据库中提取值,并用结果创建WP POST。然后您需要使用sql连接,如图所示,将返回的值存储为数组,然后使用这些返回值调用wp_insert_post作为parameters@MattShirk你的代码有错误吗?嗨-我现在没有收到任何错误,但是也没有创建帖子。我尝试将代码添加为插件,但当我尝试“激活”它时,什么也没发生。我尝试将代码添加到“functions.php”,但后来我被踢出了管理仪表板,无法重新登录,直到我手动将代码从“functions.php”中删除。我认为问题可能在于将数组项添加到wp_insert_post函数中。我这样做对吗?再次感谢你的帮助!你能检查一下你的建筑在while循环中的阵列吗?而不是调用wp_insert_post
var_dump($new_post)同样,你不应该因为把它添加到functions.php而被管理员拒之门外,这可能是你所有问题的根源。是死亡的白色屏幕吗?