使用wp-cli获取媒体URL(特色图像)

时间:2016-10-05 作者:Sulli

我正在使用媒体导入命令将图像附加到帖子。

我知道我可以使用--Cellar选项获取图像id,但是如何从这个id获取图像url呢?

或者有没有一种方法可以显示帖子的特色图片的url(显然list命令允许这样做)?

4 个回复
最合适的回答,由SO网友:Ezra Free 整理而成

假设附件ID位于变量$attachment_id 您可以使用以下命令:

# get attachment URL
wp db query "SELECT guid FROM $(wp db tables *_posts) WHERE ID=\\"$attachment_id\\"" | head -n 2 | tail -1
我使用$(wp db tables *_posts) 以防wp_ 表前缀为非默认值。

SO网友:GainRider

自v1起的WP-CLI。4.0可以使用“pull”和“patch”命令提取和存储序列化数据。

在上述情况下,我需要解决一个问题,我使用下面的表达式从帖子ID(图像附加到的帖子)获取源图像文件名:

wp post meta pluck $(wp post meta get <post_ID> _thumbnail_id) _wp_attachment_metadata file
请注意,此代码将拉动相对的后媒体路径,例如:2018/09/。dirname部分可以很容易地剥离,例如:

basename "$(wp post meta pluck $(wp post meta get <post_ID> _thumbnail_id) _wp_attachment_metadata file)"

SO网友:Javier Villanueva

媒体附件很难通过cli获取,因为它们在DB中存储为串行阵列,然后使用PHP函数生成,我认为您无法使用默认的wp cli命令获取。

但是,您可以安装RESTful wp-cli package 还有WordPressREST API plugin 要轻松获取图像URL,只需执行以下操作:

# Install dependencies
wp package install wp-cli/restful && wp plugin install rest-api --activate

# Print URL
wp rest attachment get $image_id --field=source_url

SO网友:Mateusz Marchel

如果要获取原始上传文件的url,可以通过以下方式进行:

wp post get <ID> --field=\'guid\'
这将返回guid wp\\u posts表中给定ID的列(绝对url)。

如果要从原始文件生成一些文件,必须更改url末尾的文件名,以反映生成的一些大小。您可以从存储在此映像的wp\\U Posteta中的序列化数组中获取所有大小的文件名。元密钥为_wp_attachment_metadata. 尝试使用wp cli执行以下命令

 wp post meta get <ID> _wp_attachment_metadata

相关推荐

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