ワードプレスでPHPプログラム経由でメディアの画像を追加する方法をご紹介します。

ワードプレスでPHPプログラム経由でメディアの画像を追加 するプログラムの手順

こちらはかなり複雑な手順でプログラムを構築する必要がございます。

1 メディアがアップロードされているディレクトリの取得
2 画像を取得してそのフォルダに保存する
3 メディア ライブラリに認識されるようデータを整えて登録

といった流れになります。

コードの例

$image_url = "ワードプレスのメディアに追加したい画像のURL";

$upload_dir = wp_upload_dir(); // 1
$image_data = file_get_contents( $image_url );
$filename = $kaisainendo."-".basename( $image_url );
if ( wp_mkdir_p( $upload_dir['path'] ) ) {
  $file = $upload_dir['path'] . '/' . $filename;
}
else {
  $file = $upload_dir['basedir'] . '/' . $filename;
}
file_put_contents( $file, $image_data ); // 2
$wp_filetype = wp_check_filetype( $filename, null );
$attachment = array(
  'post_mime_type' => $wp_filetype['type'],
  'post_title' => sanitize_file_name( $filename ),
  'post_content' => '',
  'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $file );// 3

さらに上記の画像を投稿のアイキャッチ画像にするには?

さらに上記で追加したメディアファイルを、投稿のアイキャッチ画像に登録してみます。
このため下記の手順のコードを作成します。

4 投稿に添付するためのアイキャッチ用のメタデータの作成
5 投稿idを指定して、アイキャッチを設定

下記のようなコードを上記コードの下に追加します。

$post_id = 'アイキャッチを設定したい投稿のid';
require_once( ABSPATH . 'wp-admin/includes/image.php' ); 
$attach_data = wp_generate_attachment_metadata( $attach_id, $file );//4
wp_update_attachment_metadata( $attach_id, $attach_data );

add_post_meta( $post_id, "_thumbnail_id", $attach_id, true );//5

WordPress ワードプレスのテーマやプラグインのカスタマイズ、政策のご依頼・ご相談はお気軽にWPドクターまでお送りください