通过外部脚本插入Wordpress Post

时间:2015-06-04 10:21:38

标签: php mysql wordpress insert

我试图通过外部php脚本插入批量帖子:

<?php
require_once '/full/path/to/wp-load.php';
require_once ABSPATH . '/wp-admin/includes/taxonomy.php';

$title = "some post title";
$content = "some content";
$tags= "tag1,tag2,tag3";
$user_id = 1;


// Create post object
$my_post = array(

   'post_title'    => $title,
   'post_content'  => $content,
   'post_status'   => 'publish',
   'post_author'   => $user_id,
   'post_type'     => 'post',
   'tags_input'    => $tags,
 );

$id = wp_insert_post($my_post,true);
?>

$ id返回0,WP_Error为空。 将帖子插入到具有正确标题和内容但没有标签的DB中。它也无法使用wp_insert_terms()插入标记或其他自定义分类法。

我是否错过了要包含的文件,或者我没有正确设置正常工作的文件?

2 个答案:

答案 0 :(得分:1)

您不需要加载taxonomy.php ..此功能由wp-load.php处理

我还建议你把它放在文件的第一个位置:

define( 'WP_USE_THEMES', false );

比你可以使用wp_insert_post()添加帖子..但要添加标签或类别等你需要使用

wp_set_post_terms() 

wp_set_object_terms() 

来自wp_insert_post的收到的$ id。

了解更多信息请查看:https://wordpress.stackexchange.com/questions/18236/attaching-taxonomy-data-to-post-with-wp-insert-post

答案 1 :(得分:0)

请先包含wordpress数据库文件。

require_once 'wp-load.php';
require_once ABSPATH . '/wp-admin/includes/taxonomy.php';

并使用以下代码从外部脚本动态插入帖子。

 $newIds = wp_insert_post( array(
            'post_title' => $postCSVContent['1'],
            'post_content' => $postCSVContent['2'],
            'post_type' => 'doors',
            'post_status' => 'publish',        
            'post_author'   => 1,
            'post_parent' => $parentId
    ));

请参阅说明如何以编程方式创建和更新wordpress的教​​程。

http://www.pearlbells.co.uk/insert-udpate-wordpress-post-programmatically/