Php 如何使用wp\u insert\u post和SQL查询填充Wordpress帖子
我正在从事一个项目,在这个项目中,我希望使用外部数据库中的SQL查询以编程方式创建wordpress帖子。我已经能够填充HighCharts图形,并以表格格式显示数据,使用PHP查询SQL数据库。但是,我不知道如何以同样的方式使用wp_insert_post。我也不确定我应该把这个代码放在哪里。非常感谢您的帮助!这是我的PHPPhp 如何使用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
<?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_postvar_dump($new_post)代码>同样,你不应该因为把它添加到functions.php而被管理员拒之门外,这可能是你所有问题的根源。是死亡的白色屏幕吗?