web-dev-qa-db-ja.com

wp_insert_attachmentの投稿者

私はプログラムで投稿や添付ファイルを挿入する必要があるカスタムテーマに取り組んでいます。 1つの要件は、それらの投稿がログインしてアクションを実行しているユーザーではないユーザーに属することです。

一例を挙げると、管理ユーザーはWordPressにログインし、このカスタムアクションを実行します。カスタムアクションは、他の2人のユーザー、user1とuser2に提案された投稿を作成します。

User1がログインすると、提案された投稿が表示され、公開することを選択できます。

関数wp_insert_postはプログラムによる投稿の挿入を可能にするので、これまでのところすべてがクールでダンディです。この関数がとる引数の1つはpost_authorで、これはuser1またはuser2のいずれかのIDに設定できます。

これまでのところ、すべてがまだ素晴らしいです。

今、それらの投稿は添付ファイル(画像)を持つことになります。私の質問は、post_authorwp_insert_attachmentを追加する方法はありますか?それがドキュメントに見つかりませんでした。添付ファイルには投稿と同じ著者IDが必要です。現在それは管理者のIDを取ります。

ありがとう。

1
Greeso

私の質問は、post_authorをwp_insert_attachmentに追加する方法はありますか?それがドキュメントに見つかりませんでした。添付ファイルには投稿と同じ著者IDが必要です。現在それは管理者のIDを取ります。

コーデックスや公開されたドキュメントだけでは物語全体がわからないことがあります。関数がどのように機能して直接ソースに移動するかを理解していないのであれば、それは常に優れています。 wp_insert_attachment()のPHP Docブロックを見ると、探している答えが見つかるでしょう。

/**
 * Insert an attachment.
 *
 * If you set the 'ID' in the $object parameter, it will mean that you are
 * updating and attempt to update the attachment. You can also set the
 * attachment name or title by setting the key 'post_name' or 'post_title'.
 *
 * You can set the dates for the attachment manually by setting the 'post_date'
 * and 'post_date_gmt' keys' values.
 *
 * By default, the comments will use the default settings for whether the
 * comments are allowed. You can close them manually or keep them open by
 * setting the value for the 'comment_status' key.
 *
 * The $object parameter can have the following:
 *     'post_status'   - Default is 'draft'. Can not be overridden, set the same as parent post.
 *     'post_type'     - Default is 'post', will be set to attachment. Can not override.
 *     'post_author'   - Default is current user ID. The ID of the user, who added the attachment.
 *     'ping_status'   - Default is the value in default ping status option. Whether the attachment
 *                       can accept pings.
 *     'post_parent'   - Default is 0. Can use $parent parameter or set this for the post it belongs
 *                       to, if any.
 *     'menu_order'    - Default is 0. The order it is displayed.
 *     'to_ping'       - Whether to ping.
 *     'pinged'        - Default is empty string.
 *     'post_password' - Default is empty string. The password to access the attachment.
 *     'guid'          - Global Unique ID for referencing the attachment.
 *     'post_content_filtered' - Attachment post content filtered.
 *     'post_excerpt'  - Attachment excerpt.
 *
 * @since 2.0.0
 * @uses $wpdb
 * @uses $user_ID
 * @uses do_action() Calls 'edit_attachment' on $post_ID if this is an update.
 * @uses do_action() Calls 'add_attachment' on $post_ID if this is not an update.
 *
 * @param string|array $object Arguments to override defaults.
 * @param string $file Optional filename.
 * @param int $parent Parent post ID.
 * @return int Attachment ID.
 */
3
Chris_O