将特色图像导入帖子,复制图像

时间:2016-04-28 作者:j03

我正在使用wp-cli为大约2000篇文章导入相同的特色图像。我做了几个测试,看看图像是否会被复制,或者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

是否有其他方法可以做到这一点,而不必导入相同的图像2000次?

谢谢,j03

3 个回复
最合适的回答,由SO网友:Daniel Bachhuber 整理而成

您可以使用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。

SO网友:Aric Watson

您应该能够为每篇文章编写一个php脚本来实现这一点。你需要做一个查询来获取所有帖子,然后在每个帖子上循环设置特色图像到你想要的图像。

This question 有应该让您开始的特定代码。

SO网友:Trect

This 对我来说效果很好。

# 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变量到导入的图像IDwp post list --post_type=post --format=ids 以空格分隔的字符串格式获取帖子ID的列表,并将其传递给xargs xargs 对每个ID进行操作,设置post meta_thumbnail_id 每个帖子ID的字段xargs 选项将空格设置为分隔符。

相关推荐

WP-CLI插件安装导致PHP致命错误-在不在对象上下文中时使用$This

运行时sudo wp install plugin pluginname --allowroot它会导致错误:PHP致命错误:未捕获错误:在/var/www/html/wp-content/plugins/pluginname/blocks中不在对象上下文中时使用$this。菲律宾比索:89我们有一个自定义插件,其中包含以下内容: class Block{ public static function Run() { add_action(\'e