我想在wp\\u posts表中插入数据,插入的post\\u id位于“guid”中,该记录不存在。下面是我得到的最接近的值,但这不起作用($postarr[\'ID\']等于0)。
function filter_handler( $data , $postarr )
{
if($data[\'post_type\']==\'ai1ec_event\'){
$my_post_id = $postarr[\'ID\'];
$data[\'guid\'] = get_option(\'siteurl\') .\'/?post_type=ai1ec_event&p=\'.$my_post_id.\'&instance_id=\';
}
return $data;
}
add_filter( \'wp_insert_post_data\' , \'filter_handler\' , \'99\', 2 );
$mypost = array(
\'post_author\' => 1,
\'post_content\' => \'Test\',
\'post_status\' => \'publish\',
\'post_title\' => $_GET[\'assignment_name\'],
\'post_type\' => \'ai1ec_event\',
\'guid\' => \'\'
);
$postid = wp_insert_post($mypost);
最合适的回答,由SO网友:david.binda 整理而成
你为什么需要这个?数据库中的ID是自动递增的-它自己管理它的值。如果您的目标是设置自定义guid,则应在$post\\u id=wp\\u inserted\\u post($mypost)之后通过wp\\u update\\u post创建插入的帖子后立即更新该帖子;像这样:
...Your code above...
$postid = wp_insert_post($mypost);
$data = array(
\'ID\' => $postid,
\'guid\' => get_option(\'siteurl\') .\'/?post_type=ai1ec_event&p=\'.$postid.\'&instance_id=\'
);
wp_update_post( $data );