新規に取得したポストIDに対して、カスタムフィールドのアップデートをしようとしたが、エラーが発生してできなかった。
てっきり、ループ処理内でDBアップデートしているため、インサートが間に合わずに、ポストIDが取得できず、DBエラーを起こしているのかと思ったら・・・。
$post_id = wp_insert_post( $post, $wp_error ); //ここでエラー発生 update_post_meta($post_id, 'title', $title); update_post_meta($post_id, 'article_link', $link);
原因は、エスケープ処理・・・。
タイトルにシングルコーテーションが入っていたので、それがアップデートエラーになっており、update_post_metaできなかった。
同じく、URLもエンコード処理が必要でした。
エスケープ処理を追加したら、アップデートが正常に終了。
$post_id = wp_insert_post( $post, $wp_error ); //エスケープ処理を追加したら処理が正常に終了 update_post_meta($post_id, 'title', esc_html($title)); update_post_meta($post_id, 'article_link', esc_url($link));