0

WordPress では、wp_editor を使用して、ユーザーがエディターとメディア アップローダーを使用できるようにしています。投稿の自動保存を作成したくないのですが、問題は、投稿が保存されるまで、添付ファイルに添付する post_id がないことです。

メディアをアップロードし、保存後に新しい投稿に添付する方法があるかどうか疑問に思っていました.

投稿が保存されたときに識別できるように、添付ファイルに一時 ID を渡すことはできますか? それとも、アップロード後に添付ファイル ID を取得しますか?

アイデアを歓迎します!

4

2 に答える 2

0

大騒ぎした後、投稿IDが事前に必要であるという結論に達しました。

WordPressの投稿編集画面と同じことをすることになりました。ユーザーが投稿のタイトルを入力したら、jQuery と Ajax を少し使って動的に自動保存を作成しました。

自動保存が完了すると、メディア アップロードの iframe href が、自動保存の投稿 ID を含むものに置き換えられます。

そのため、投稿の下書きが放棄される可能性はまだありますが、少なくとも投稿のタイトルを入力することで、少しのコミットメントが必要になります.

于 2012-08-01T09:08:47.240 に答える
0

添付されていないメディアを作成して、後で投稿に添付できます。

function file_into_database( $filetype, $filename, $target )
{
    $title = $this->clean_file_info[ 'basename' ];

    $attachment = array
    (
          'post_mime_type' => $filetype
        , 'post_title'     => $title
        , 'post_content'   => ''
        , 'post_status'    => 'inherit'
        , 'guid'           => $target[ 'uri' ]
        , 'post_author'    => $this->author
    );


    $attach_id = wp_insert_attachment( $attachment, $target[ 'path' ] );


    $attach_data = wp_generate_attachment_metadata( $attach_id, $target[ 'path' ] );
    wp_update_attachment_metadata( $attach_id,  $attach_data );

    return $attach_id;
}

次に、後で添付します。

wp_update_post
(
    array
    (
           'ID'          => $attachment[ 'id' ]
        ,  'post_parent' => $id_new_post
    )
)

これはプラグインで見つけたばかりで、文書化されていないため、副作用があるかどうかはわかりませんが、遭遇したことはありません. また、投稿が最終的に投稿されない場合、自動保存が長引くことはありませんが、添付ファイルが長引く可能性があるため、将来のある時点で削除をスケジュールし、必要に応じてキャンセルする必要がある場合があります。投稿が保存されます。

于 2015-08-18T13:38:07.407 に答える