Já escrevi sobre o WP-CLI anteriormente aqui no blog, porém, gostaria de compartilhar sobre o comando post update
hoje.
Durante anos, tenho usado o comando wp post update
para atualizar um post de cada vez rodando o comando wp post update
seguido pelo ID do post e o que desejo alterar.
$ wp post update 123 --post_author=456
O comando acima atualizará o post com ID 123 e aplicará o autor com ID 456 a ele.
Esse comando é bem eficiente, porém, quando é necessário aplicar as mesmas informações (autor do post, por exemplo) a mais de um post, rodar um comando para cada post ID torna-se algo extremamente maçante.
Atualmente, estes são os exemplos do comando wp post update
na documentação do WP-CLI:
$ wp post update 123 --post_name=something --post_status=draft
Success: Updated post 123.
# Update a post with multiple meta values.
$ wp post update 123 --meta_input='{"key1":"value1","key2":"value2"}'
Success: Updated post 123.
Por focar nos exemplos da documentação, eu nunca dei muita atenção para a descrição do comando:
wp post update
Documentação do WP-CLI
Updates one or more existing posts.
Updates one or more existing posts = Atualiza um ou mais posts existentes.
Sim, apesar dos exemplos na documentação não cobrirem o uso do comando para editar mais do que um único post por vez (wp post delete
tem exemplos com múltiplos posts), o comando wp post update
pode editar vários posts ao mesmo tempo.
Que maravilha!
Agora não é mais necessário rodar o mesmo comando várias vezes trocando apenas o ID do post.
Exemplos de uso
Para atualizar mais de um post com apenas um comando, basta informar os IDs de cada post após update
desta forma:
$ wp post update 123 456 --post_author=789
Success: Updated post 123.
Success: Updated post 456.
O comando acima editará o autor dos posts com IDs 123 e 456 para o autor 789.
Mas e se eu precisar alterar todos os posts de um determinado tipo de post? Você também pode fazer isso de uma só vez aninhando (um comando dentro de outro) dois comandos:
$ wp post update $(wp post list --post_type=page --format=ids) --post_author=123
Success: Updated post 123.
Success: Updated post 456.
Nesse comando, todas as páginas (--post_type=page
) serão atualizadas para o autor 123.
Devolvendo para a comunidade
Para facilitar a vida de quem (assim como eu) presta mais atenção aos exemplos do que na descrição do comando, eu enviei um Pull Request adicionando os exemplos que mencionei à documentação do WP-CLI. No próximo release, os exemplos serão publicados 🙂
Não sabia que dava para fazer isso, obrigado por compartilhar! E parabéns por ter atualizado a documentação oficial também!!!
♥️