如何使用WordPress命令行界面WP-CLI克隆或复制帖子?

时间:2017-01-20 作者:tfrangio

我知道我可以用几个插件克隆或复制一篇文章。我最常用的是https://wordpress.org/plugins/duplicate-post/. 但是,最近我越来越多地使用WP-CLI,我希望能够从命令行复制或克隆帖子。

如有任何建议,将不胜感激。

3 个回复
最合适的回答,由SO网友:Md. Mrinal Haque 整理而成

通过wp-cli克隆一篇文章有点棘手。它需要两个步骤:

创建一个保存帖子信息的文件。假设,下面的命令创建一个名为file的文件。来自hello post(id 1)的txt。在本例中为文件。保存在根目录中的txt。

wp post get 1 > file.txt

hello 邮递以下命令创建一个名为duplicate

wp post create ./file.txt --post_title="duplicate"

SO网友:cfx

现在可以通过WP-CLI使用$ wp post create --from-post=1. 它甚至复制元数据。

SO网友:Jesús Franco

非常感谢您的回答和@Mrinal,并确认它可以与管道一起使用@tfrangio。

我也对将元数据从一个帖子复制到另一个帖子很感兴趣,所以在使用管道复制创建帖子之后:

wp post get 6815 --field=content | wp post create - --post_title="Title of dup" --post_status=\'draft\'
在我得到新帖子的ID后,我传递了我感兴趣的meta\\u键。。。

假设14 是源post\\u ID,并且21 我要复制的目标post\\u IDtie_hide_relatedtie_sidebar_pos:

for meta_key in tie_hide_related tie_sidebar_pos ; \\
do wp post meta get 14 $meta_key | \\
xargs wp post meta update 21 $meta_key \\
; done
xargs 需要将post meta get返回的值传递给wp post meta update,即使the documentation says it reads from stdin, 如果没有xargs,某些单个值将作为一个项目列表读取,从而更改值的行为

然后,要复制分类法的术语,可以这样说category:

 for cat_id in `wp post term list 14 category --format=ids` ; \\
 do wp post term add 21 category $cat_id --by=id ; done
这最后一步可以在几个分类法中重复。