无法使wp_插入_POST工作

时间:2016-07-09 作者:angela

我正在尝试编写一个循环,该循环将发布来自SQL数据库的文章。然而,每当我尝试加载页面时,都会出现500个错误,错误日志中没有显示任何内容。

代码:

<?php
define(\'WP_USE_THEMES\', false);
require(\'wp-load.php\');
global $wpdb;

$sql = "SELECT * FROM newposts";
$result = $wpdb->query($sql);  
while($row = $result->fetch_assoc()) {
$post = array(
     \'post_title\' => $row[\'post_title\'],
     \'post_content\' => $row[\'post_content\'],
     \'post_date\' => $row[\'post_date\'],
     \'post_status\' => \'publish\',
     \'post_author\' => 1,
     \'post_category\' => 1
  );
wp_insert_post( $post );
echo "inserted post {$row[\'post_title\']}";
echo "<br />";
}
?>
我是wordpress的新手,所以我不知道我是否正确使用了$wpdb或插入post函数。此外,该文件与wp load、wp config等放在同一目录中,并且该站点正在bluehost上运行,如果这意味着什么的话(我不知道)。

谢谢你的时间!

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

这是因为您试图定义一个已经定义的属性,查询一个名称错误的表,循环一个整数,而您可以使用get_results 而不是query 方法$wpdb ...

我编辑了代码,希望它对您的复制后处理有所帮助:

defined( \'WP_USE_THEMES\' ) || define( \'WP_USE_THEMES\', false );
require_once(\'wp-load.php\');
global $wpdb;
$sql = "SELECT * FROM {$wpdb->prefix}newposts";
$result = $wpdb->get_results( $sql );  
foreach ( $result as $row ):
    $row = ( array ) $row;
    $post = array(
        \'post_title\' => $row[\'post_title\'],
        \'post_content\' => $row[\'post_content\'],
        \'post_date\' => $row[\'post_date\'],
        \'post_date_gmt\' => $row[\'post_date_gmt\'],
        \'post_status\' => \'publish\',
        \'post_author\' => 1,
        \'post_category\' => array(1)
    );
    wp_insert_post( $post );
    echo "inserted post {$row[\'post_title\']}";
    echo "<br />";
endforeach;

相关推荐

显示作者姓名PHP(自制插件)

我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果