wp_update_post()错误

时间:2015-02-09 11:10:39

标签: php wordpress

我有一个自定义代码,可以自动创建菜单并更新' post'表格让我的菜单发布。这是我的代码。

$test = array( 
array(
'menu-item-db-id' => 0,
'menu-item-object-id' => 2,
'menu-item-object' => 'category',
'menu-item-parent-id' => 0,
'menu-item-type' => 'taxonomy',
'menu-item-title' => 'Rome',
'menu-item-url' => 'http://test.exmple.com/rome/',
'menu-item-target' => '',
'menu-item-classes' => '', 
'menu-item-xfn' => '',
'menu-item-description' => ''
)
);


if($item_ids = wp_save_nav_menu_items( 7, $test )) {
   $my_post = array (
    'ID' => $item_ids,
    'post_status' => 'publish',
    'post_name' => $item_ids
);
  wp_update_post($my_post);
}

这里的问题是当调用函数wp_update_post时,我收到了一个错误:

Warning: strip_tags() expects parameter 1 to be string, array given in      /home/lingfish/public_html/wp-includes/formatting.php on line 1068

Warning: urlencode() expects parameter 1 to be string, array given in /home/lingfish/public_html/wp-includes/post.php on line 2790

Warning: preg_match() expects parameter 2 to be string, array given in /home/lingfish/public_html/wp-includes/formatting.php on line 633

Warning: strip_tags() expects parameter 1 to be string, array given in /home/lingfish/public_html/wp-includes/formatting.php on line 1068

然而,在加载页面之后,当我刷新但是评论除了这个之外的所有代码:

$my_post = array (
     'ID' => $item_ids,
     'post_status' => 'publish',
     'post_name' => $item_ids
);
 wp_update_post($my_post);

它可以工作,我有保存菜单项后它不会自动创建的帖子表,这就是调用wp_update_post时没有结果的原因。你有其他解决方案,所以我可以更新post_status字段发布,以便我的菜单可见吗?

2 个答案:

答案 0 :(得分:2)

你不能将数组放入wp_update_post。您必须遍历$ item ID并使用字符串值。实施例;

if($item_ids = wp_save_nav_menu_items( 7, $test )) {

  foreach( $item_ids AS $single_item_id ) {

    $my_post = array (
     'ID' => $single_item_id,
     'post_status' => 'publish',
     'post_name' => $single_item_id
    );

    wp_update_post($my_post);

  }

}

答案 1 :(得分:0)

$my_post = array (
     'ID' => $item_ids,
     'post_status' => 'publish',
          'post_name' => $item_ids
);
wp_update_post($my_post);

问题是行:post_name' => $item_ids wp想要一个STRING,你给它一个数组。 循环访问ID并逐个更改它们。