そのため、ボタンをクリックするだけですべての処理を行うある種のインポーター(別のWPdbからWP dbへ)を作成しました。
ACFで作成した他のDBからのIDを入力する必要があるカスタムフィールドの1つが正しく入力されていないにもかかわらず、投稿タイプが正しく作成されるようになり、update_post_meta
に従ってこれを行いました。今私は自分のWordpress DBを見るとそれがデータベースにそれを正しく追加していることを示しているがWP-Adminのカスタム投稿に追加されていない(BetterによるShow)ので何が問題なのかわからない。
これは私が使用したコードです:
<form action="" method="post">
<input type="submit" value="Test" id="submit" name="submit">
<?php
if(isset($_POST['submit'])){
foreach ($result as $c) {
$postargs = array(
'post_title' => $c->member_name,
'post_status' => 'draft',
'post_type' => 'bedrijf'
);
$thisid = wp_insert_post ( $postargs, true);
if ( is_wp_error($thisid) ) {
return get_error_codes();
} else {
update_post_meta( $thisid, $meta_key, $c->memberID);
}
}
}
?>
</form>
DBからのスクリーンショットで、追加されていることを示しています(はい、カスタムフィールドが1つしかないのでメタキーは正しいです)。メタ値は、私が持っているクエリでLIMIT 1に設定したときにも正しいので、DBの最初の値だけが表示されます。
編集:正確に言うと、wp_postmeta
テーブルに追加します。
この記事で解決策を見つけました:
投稿を保存するときにupdate_post_metaとupdate_fieldのみが動作する
update_field
はACFとは異なる方法でフィールドを更新するので、解決策はupdate_post_meta
を使用することです。これはコードupdate_field($meta_key, $meta_value, $post_ID);
を使用する正しい順序であることに注意してください。