投稿を直接挿入するために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
関数リファレンス/ wp insert attachment
$image_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );
この関数は注目の画像に使用できる画像IDを返します。
update_post_meta($post_id, "_thumbnail_id", $image_id);
ご回答ありがとうございます。スポットでした。私は今、次のコードを使っています。
//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'を示す他の画像と違ってそれはファイルの作者を特定しませんが。
ご協力いただきありがとうございます。