$filePath = wp_get_attachment_url( $id );
$tempfilename = explode("/", $filePath);
$temppdffile = end($tempfilename);
$cuurentPath = plugin_dir_path( __FILE__ ).$temppdffile;
$im = new Imagick();
$im->setResolution(300, 300);
$im->readImage( $cuurentPath.'[0]');
$im->setImageFormat('jpg');
私は上記のコードを持っています..成功した画像を生成しました。任意のアイデア..すべてのことを試してみました
私はImagickにあまり馴染みがありませんが、それを使って作成した画像のURLを取得できれば、残りはWordPressのmedia_sideload_image()
関数を使ってかなり簡単になります。これは(設定ページのような)wp-admin領域から機能する基本的な例です。それはあなたが私の$id
の代わりにあなたの$post_id
変数を使っているように見えることに注意してください:
// load image from URL into media library, set a post as its parent, and return new attachment's id
$attachment_id = media_sideload_image( $image_url, $post_id, $img_title, 'id');
if( !is_wp_error( $attachment_id ) ) { // if no error returned...
// ...Set above loaded image as the featured image of the current post
set_post_thumbnail($post_id, $attachment_id);
}
コーデックスがmedia_sideload_imageの3番目のパラメータに画像の説明を設定すると言っているが、それは画像のタイトルを設定することに注意してください。また、4.8で添付ファイルIDを返すための4番目のパラメータを追加したところです。
もっと詳しく
フロントエンドでこれを実装している場合は、media_sideload_imageがアップロードを処理できるように、次の3つのファイルをスクリプトに含める必要があります。
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');