注目の画像がない投稿がたくさんあるこのサイトを移行しています。私はインターフェースでページごとにこれを始めましたが、それは永遠にかかります。データベース挿入を使用するともっと速くなるかもしれないと思いました。
投稿には画像が添付されていないため、最初の画像を注目として自動的に設定するプラグインを使用できません。
以前にこれを行ったことがある人はいますか、それとも私にリソースを教えてもらえますか?
この質問は興味深いものでした。直接SQLを使用してwpに画像を挿入する必要があるため、さらに調査しました。まず、注目の画像を割り当てるための投稿またはページが必要です。wpインターフェイスを介して、またはwp_insert_post()を呼び出すか、$wp->postにSQLを挿入して直接投稿を挿入したと仮定します。次に、この投稿のID、たとえば「target_post_id」が必要です。
次に、データベースに画像を挿入する必要があります。もう一度、前の方法のいずれかを使用できますが、高速にするために、事前にサイズ変更されたすべての画像をにロードし、SQLを使用してそれらを挿入します。
INSERT INTO $wp->post (post_type, guid, status, post_mime_type) VALUES ('attachment', '<images_url>', 'publish', 'image/jpeg')
最後のステップは、cr8ivecodesmithの回答に従って、投稿を画像にバインドすることです。
INSERT INTO $wp->postmeta (meta_value, meta_key, post_id) VALUES ('<post_id_of_image>', '_thumbnail_id', '<target_post_id>');
wpdbがデフォルト値で入力するnull以外のフィールドがいくつかあります
手元の記録のデータを観察して、実際に動作させることができました。wp_postmeta
クエリを使用してテーブルを操作するだけで済みました。
INSERT INTO `wp_postmeta` (meta_value, meta_key, post_id) VALUES ('<post_id_of_image>', '_thumbnail_id', <target_post_id>);
これが他の人の助けになることを願っています。
ステップ1あなたの添付ファイルのwp_postsテーブルにレコードを挿入します
INSERT INTO wp_posts (post_type, guid, post_status, post_mime_type,post_parent) VALUES ('attachment', '".$filename."', 'inherit', 'image/jpeg',".$parentpostid.");
$ filname =サムネイルとして使用する画像のURL(例:http://yourdomain.com/wp-content/uploads/2014/09/thumbnail.jpg )
$parentpostid=サムネイルを添付する投稿のpost_id。
ステップ2添付ファイル用にwp_postmetaに投稿メタレコードを作成します
INSERT INTO wp_postmeta (meta_value, meta_key, post_id) VALUES ('".$filename."', '_wp_attached_file',".$attachmentid.");
$filename=ファイルのファイル名。e.ge. 2014/09 / thumbnail.jpg $ attachmentid =ステップ#1で作成された添付ファイルのpost_id
ステップ3投稿メタレコードを作成して、サムネイルを添付する投稿のサムネイルとして添付投稿を識別します。
INSERT INTO wp_postmeta (meta_value, meta_key, post_id) VALUES (".$attachmentid.", '_thumbnail_id',".$parentpostid.");
$parentpostid=サムネイルを添付する投稿のpost_id。
$ attachmentid =ステップ#1で作成された添付ファイルのpost_id