当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

「関数リファレンス/wp insert attachment」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(和訳完了。)
(en:Function_Reference/wp_insert_attachment 18:25, 3 April 2017 Jdorner 版を反映。)
 
1行目: 1行目:
<div id="Description">
+
== 説明<span id="Description"></span> ==
== 説明 ==
+
</div>
+
  
メディアライブラリへ添付ファイルを追加します。併せて <tt>[[関数リファレンス/wp_update_attachment_metadata|wp_update_attachment_metadata()]]</tt>/[[:en:Function Reference/wp_update_attachment_metadata|en]] と <tt>[[関数リファレンス/wp_generate_attachment_metadata|wp_generate_attachment_metadata()]]</tt>/[[:en:Function Reference/wp_generate_attachment_metadata|en]] も使ってください。成功すると <tt>wp_posts</tt> テーブルに作られたエントリーの ID を返します。
+
メディアライブラリへ添付ファイルを追加します。併せて <tt>[[関数リファレンス/wp_update_attachment_metadata|wp_update_attachment_metadata()]]</tt> と <tt>[[関数リファレンス/wp_generate_attachment_metadata|wp_generate_attachment_metadata()]]</tt> も使ってください。成功すると <tt>wp_posts</tt> テーブルに作られたエントリーの ID を返します。
  
この関数は WordPress が添付ファイルを扱うときに使用する低レベル API の一部です。添付ファイルをアップロードして追加する処理の全体を一度に実行するには、ほとんどの場合、<tt>[[関数リファレンス/media_handle_upload|media_handle_upload()]]</tt>/[[:en:Function Reference/media_handle_upload|en]] を使うとよいでしょう。
+
この関数は WordPress が添付ファイルを扱うときに使用する低レベル API の一部です。添付ファイルをアップロードして追加する処理の全体を一度に実行するには、ほとんどの場合、<tt>[[関数リファレンス/media_handle_upload|media_handle_upload()]]</tt> を使うとよいでしょう。
  
<div id="Usage">
+
== 使い方<span id="Usage"></span> ==
== 使い方 ==
+
</div>
+
  
 
  <?php wp_insert_attachment( $attachment, $filename, $parent_post_id ); ?>
 
  <?php wp_insert_attachment( $attachment, $filename, $parent_post_id ); ?>
  
<div id="Parameters">
+
== パラメータ<span id="Parameters"></span> ==
== パラメータ ==
+
</div>
+
  
 
{{Parameter|$attachment|配列|データベースの <tt>wp_posts</tt> テーブルへ書き込む、添付ファイルに関するデータの配列。キーとして、少なくとも <tt>post_title</tt>、<tt>post_content</tt>(このキーの値は空文字列にする)、<tt>post_status</tt>、<tt>post_mime_type</tt> を含める必要があります。}}
 
{{Parameter|$attachment|配列|データベースの <tt>wp_posts</tt> テーブルへ書き込む、添付ファイルに関するデータの配列。キーとして、少なくとも <tt>post_title</tt>、<tt>post_content</tt>(このキーの値は空文字列にする)、<tt>post_status</tt>、<tt>post_mime_type</tt> を含める必要があります。}}
{{Parameter|$filename|文字列|サーバー上のファイルの場所。ファイルの URI ではなく絶対パスを指定してください。ファイルは uploads ディレクトリに置く''必要があります''。<tt>[[関数リファレンス/wp_upload_dir|wp_upload_dir()]]</tt>/[[:en:Function Reference/wp_upload_dir|en]] を見てください。|オプション|false}}
+
{{Parameter|$filename|文字列|サーバー上のファイルの場所。ファイルの URI ではなく絶対パスを指定してください。ファイルは uploads ディレクトリに置く''必要があります''。<tt>[[関数リファレンス/wp_upload_dir|wp_upload_dir()]]</tt> を見てください。|オプション|false}}
 
{{Parameter|$parent_post_id|整数|添付ファイルは親の投稿や固定ページに紐付けることができます。親投稿の ID を指定するか、紐付けないなら 0 を指定します。|オプション|0}}
 
{{Parameter|$parent_post_id|整数|添付ファイルは親の投稿や固定ページに紐付けることができます。親投稿の ID を指定するか、紐付けないなら 0 を指定します。|オプション|0}}
  
<div id="Return_Values">
+
== 戻り値<span id="Return_Values"></span> ==
== 戻り値 ==
+
</div>
+
  
 
添付ファイルの ID(整数)を返します。失敗すると 0(整数)を返します。
 
添付ファイルの ID(整数)を返します。失敗すると 0(整数)を返します。
  
<div id="Example">
+
== 用例<span id="Examples"></span> ==
== 用例 ==
+
</div>
+
  
 
ID が 37 の投稿を親にして添付ファイルを追加する例です。
 
ID が 37 の投稿を親にして添付ファイルを追加する例です。
65行目: 55行目:
 
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
 
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
 
wp_update_attachment_metadata( $attach_id, $attach_data );
 
wp_update_attachment_metadata( $attach_id, $attach_data );
 +
 +
// アイキャッチ画像にする。
 +
set_post_thumbnail( $parent_post_id, $attach_id );
 
</pre>
 
</pre>
  
<div id="Note">
+
== 参考<span id="Notes"></span> ==
== 参考 ==
+
</div>
+
  
 
一部のサーバーでは、GUID を作るために <code>_wp_relative_upload_path()</code> を利用しても正しい結果が得られない場合があります。
 
一部のサーバーでは、GUID を作るために <code>_wp_relative_upload_path()</code> を利用しても正しい結果が得られない場合があります。
  
<div id="Change_Log">
+
== 変更履歴<span id="Change_Log"></span> ==
== 変更履歴 ==
+
</div>
+
  
* [[Version 2.0|バージョン 2.0]] : 新規導入
+
* 新規導入 : 2.0
  
<div id="Source_File">
+
== ソースファイル<span id="Source_File"></span> ==
== ソースファイル ==
+
</div>
+
  
 
<tt>wp_insert_attachment()</tt> は {{Trac|wp-includes/post.php}} にあります。
 
<tt>wp_insert_attachment()</tt> は {{Trac|wp-includes/post.php}} にあります。
  
<div id="Related">
+
== 関連項目<span id="Related"></span> ==
== 関連資料 ==
+
</div>
+
  
 
[[関数リファレンス/wp get attachment url|wp_get_attachment_url()]],
 
[[関数リファレンス/wp get attachment url|wp_get_attachment_url()]],
95行目: 80行目:
 
{{Tag Footer}}
 
{{Tag Footer}}
  
{{原文|Function Reference/wp_insert_attachment|148943}} <!-- 16:27, 9 January 2015 Mannieschumpert 版 -->
+
{{原文|Function Reference/wp_insert_attachment|160379}} <!-- 18:25, 3 April 2017 Jdorner 版 -->
  
 
{{DEFAULTSORT:Wp_insert_attachment}}
 
{{DEFAULTSORT:Wp_insert_attachment}}

2018年5月4日 (金) 13:12時点における最新版

説明

メディアライブラリへ添付ファイルを追加します。併せて wp_update_attachment_metadata()wp_generate_attachment_metadata() も使ってください。成功すると wp_posts テーブルに作られたエントリーの ID を返します。

この関数は WordPress が添付ファイルを扱うときに使用する低レベル API の一部です。添付ファイルをアップロードして追加する処理の全体を一度に実行するには、ほとんどの場合、media_handle_upload() を使うとよいでしょう。

使い方

<?php wp_insert_attachment( $attachment, $filename, $parent_post_id ); ?>

パラメータ

$attachment
配列) (必須) データベースの wp_posts テーブルへ書き込む、添付ファイルに関するデータの配列。キーとして、少なくとも post_titlepost_content(このキーの値は空文字列にする)、post_statuspost_mime_type を含める必要があります。
初期値: なし
$filename
文字列) (オプション) サーバー上のファイルの場所。ファイルの URI ではなく絶対パスを指定してください。ファイルは uploads ディレクトリに置く必要がありますwp_upload_dir() を見てください。
初期値: false
$parent_post_id
整数) (オプション) 添付ファイルは親の投稿や固定ページに紐付けることができます。親投稿の ID を指定するか、紐付けないなら 0 を指定します。
初期値: 0

戻り値

添付ファイルの ID(整数)を返します。失敗すると 0(整数)を返します。

用例

ID が 37 の投稿を親にして添付ファイルを追加する例です。

<?php
// $filename はアップロード用ディレクトリにあるファイルのパス。
$filename = '/path/to/uploads/2013/03/filename.jpg';

// この添付ファイルを紐付ける親投稿の ID。
$parent_post_id = 37;

// ファイルの種類をチェックする。これを 'post_mime_type' に使う。
$filetype = wp_check_filetype( basename( $filename ), null );

// アップロード用ディレクトリのパスを取得。
$wp_upload_dir = wp_upload_dir();

// 添付ファイル用の投稿データの配列を準備。
$attachment = array(
	'guid'           => $wp_upload_dir['url'] . '/' . basename( $filename ), 
	'post_mime_type' => $filetype['type'],
	'post_title'     => preg_replace( '/\.[^.]+$/', '', basename( $filename ) ),
	'post_content'   => '',
	'post_status'    => 'inherit'
);

// 添付ファイルを追加。
$attach_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );

// wp_generate_attachment_metadata() の実行に必要なので下記ファイルを含める。
require_once( ABSPATH . 'wp-admin/includes/image.php' );

// 添付ファイルのメタデータを生成し、データベースを更新。
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );

// アイキャッチ画像にする。
set_post_thumbnail( $parent_post_id, $attach_id );

参考

一部のサーバーでは、GUID を作るために _wp_relative_upload_path() を利用しても正しい結果が得られない場合があります。

変更履歴

  • 新規導入 : 2.0

ソースファイル

wp_insert_attachment()wp-includes/post.php にあります。

関連項目

wp_get_attachment_url(), wp_delete_attachment(), wp_insert_post()


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/wp_insert_attachment最新版との差分