Plugin destinado a ser usado como boilerplate, ele irá ser usado principalmente quando surgir a necessidade de criar um plugin WordPress do zero, mas com uma estrutura já bem definida, pronto para testes unitários, linter + analisador estático de código e com container de injeção de dependência.
- PHP >= 7.3
- Composer
Este projeto tem uma action do semantic release, que a cada push no branch master
ela roda para verificar se será necessário gerar um novo release, para isso ele percorre os commits verificando se está no padrão Conventional Commit.
Importante: Quando for fazer squash
dos commits
, será necessário alterar a mensagem do squash
para o padrão Conventional Commit, caso isso não seja feito, o release não será gerado automaticamente.
- Entre em wp-content/plugins.
- Execute
composer create-project personare/plugin-boilerplate nome-do-seu-novo-plugin
. - Renomeie as strings.
- Ative o seu novo plugin.
Renomeie todas as strings abaixo para algo que faça sentido para o projeto que está a desenvolver.
MY_APP_
MyApp
my-app
plugin-boilerplate
GPL-2.0-only
composer ci
irá executar todos os scripts importantes para o CI, consulte ocomposer.json
caso queira roda-los individualmente;yarn lint
irá executar o linter para JavaScript + SASS;yarn build
comando para gerar os bundles;
- Em Preferences -> Tools -> External Tools clique para adicionar uma nova tool. Coloque o nome que achar melhor, selecione
run_phan.sh
script como "Program" e selecione o diretório do projeto como "Working directory" e por ultimo coloque$FILE_PATH$:$LINE$
como "Output filters" clicando em "Advanced Options". Você consegue executarexternal tools
em Tools -> External Tools.
Caso dê algum erro de permissão, execute chmod +x run_phan.sh
no seu terminal.
Consulte os arquivos dentro de src/WordPress/
, lá vai encontrar bons exemplos de como declarar hooks nesta estrutura,
caso queira registrar um CPT consulte src/WordPress/Services/ExampleServiceProvider.php
ou se caso quer registrar uma
Taxonomia, então consulte src/WordPress/Services/ExampleCategoryServiceProvider.php