私は約2,000の投稿のための同じ特色にされたイメージを輸入するのにwp cliを使用しています。画像が複製されるかどうか、またはWordPressが画像がすでにメディアライブラリに存在することに気付いてそれを使用するかどうかを確認するために、いくつかテストを行いました。残念ながらそれはただイメージを複製するだけです。
私が使っているコマンド:wp media import http://example.com/wp-content/uploads/sites/30/2016/04/picture_name.jpg --post_id=x --title="Pluto Mosaic" --featured_image --url=mysite.example.com
同じ画像を2,000回インポートしなくてもこれを実行する別の方法はありますか?
ありがとう、j03
wp media import
を使って画像を一度インポートすることができます。添付ファイルのIDを作成したら、実行できます。
wp post list --post_type=post --format=ids | xargs -0 -d ' ' -I % wp post meta add % _thumbnail_id <thumbnail-id>
<thumbnail-id>
を実際の添付ファイルIDに置き換えてください。
投稿ごとにこれを行うためのphpスクリプトを作成できるはずです。すべての投稿を取得するにはクエリを実行してから、その設定をループして各投稿のおすすめ画像を目的の画像に設定する必要があります。
この質問 あなたが始められるようにすべき特定のコードを持っています。
これ 私のために非常にうまく働いた。
# Line 1
ATT_ID="$(wp media import ~/Pictures/swimming.jpg --porcelain)"
# Line 2
wp post list --post_type=post --format=ids | \
# Line 3
xargs -0 -d ' ' -I % wp post meta add % \_thumbnail_id $ATT_ID
チュートリアル:
--porcelain
オプションにより、新しい添付ファイルIDが出力されるため、この行はインポートを実行し、$ATT_ID
Shell変数をインポートされたイメージIDに設定しますwp post list --post_type=post --format=ids
は、投稿IDのリストを取得しますスペースで区切られた文字列形式で、これをxargs
xargs
に渡します。各IDで動作し、各投稿IDの投稿メタ_thumbnail_id
フィールドを設定します。 xargs
オプションは、区切り文字としてスペースを設定します。