web-dev-qa-db-ja.com

PHP /手動による画像の使用 - 2つの質問

投稿を直接挿入するためにwp_insert_post()関数を使用する簡単なPHPスクリプト/ページを作成しました。そしてこれはうまくいきます。私が手動で追加している投稿には画像が含まれているので、最初に手動で/プログラムですべての投稿画像が保存されているそれぞれの "/ uploads /"フォルダにアップロードします。投稿のコンテンツには通常のテキストと、画像を指すのに必要なHTMLが含まれています。

<p>This is a manually created post for my blog, there should be a picture below this line of text.  Thanks for visiting.</p>
<img src="http://www.mysite.com/wp-content/uploads/image.jpg">

投稿はうまく表示されます(画像を含む)。しかし、私の2つの問題は以下のとおりです。

1)アップロードした画像がメディアライブラリにありません。どうやって入手できますか。

2)同じ画像に「おすすめの画像/サムネイル」を追加したいのですが、その呼び出しに使用されている機能がわかりませんか。 insert_featured_thumbnail( "/ wp-content/uploads/image.jpg"、$ pid)の行に沿って関数を見つけたいと思っていました。

誰かアイデアがありますか?

進んでくれてありがとう。

WizzKidd

3
WizzKidd

関数リファレンス/ wp insert attachment

$image_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );

この関数は注目の画像に使用できる画像IDを返します。

update_post_meta($post_id, "_thumbnail_id", $image_id);
3
Rob Vermeer

ご回答ありがとうございます。スポットでした。私は今、次のコードを使っています。

//SAVE THE POST - $new_post is my array that conforms to the necessary requirements
$pid = wp_insert_post($new_post);

//SET MY TAGS UP PROPERLY - $tagsArray contains an array of tags
wp_set_post_tags($pid, $tagsArray);

//ADD IMAGE TO IMAGE-GALLERY AND return $image_id - $wp_image is my image filename
$wp_filetype = wp_check_filetype(basename($wp_image), null);
$attachment = array(
   'post_mime_type' => $wp_filetype['type'],
   'post_title'     => preg_replace('/\.[^.]+$/', '', $myImageTitle),
   'post_content'   => '',
   'post_status'    => 'inherit'
);
$serverFullPath = '/home/user/public_html/mysite/wp-content/uploads/';
$image_id = wp_insert_attachment($attachment, $serverFullPath . $wp_image, $pid);

//ADD THE MEDIA GALLERY IMAGE AS A FEATURED IMAGE FOR THIS POST
update_post_meta($pid, "_thumbnail_id", $image_id);

//POST THE POST
do_action('wp_insert_post', 'wp_insert_post');

メディアギャラリーをチェックしました、そして私の画像はそこにあります:) 'admin'を示す他の画像と違ってそれはファイルの作者を特定しませんが。

ご協力いただきありがとうございます。

2
WizzKidd