web-dev-qa-db-ja.com

update_post_metaが何も追加していません(add_post_metaも)。

そのため、ボタンをクリックするだけですべての処理を行うある種のインポーター(別の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の最初の値だけが表示されます。

DB Image

編集:正確に言うと、wp_postmetaテーブルに追加します。

1
David H

この記事で解決策を見つけました:

投稿を保存するときにupdate_post_metaとupdate_fieldのみが動作する

update_fieldはACFとは異なる方法でフィールドを更新するので、解決策はupdate_post_metaを使用することです。これはコードupdate_field($meta_key, $meta_value, $post_ID);を使用する正しい順序であることに注意してください。

1
David H