-
Notifications
You must be signed in to change notification settings - Fork 195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Odin v3 beta #480
base: master
Are you sure you want to change the base?
Odin v3 beta #480
Conversation
# Conflicts: # .gitignore # 404.php # archive.php # assets/css/editor-style.css # assets/js/main.js # assets/js/main.min.js # author.php # category.php # comments.php # core/assets/css/admin.css # core/assets/js/admin-custom-status.js # core/assets/js/admin.js # core/assets/js/editor-shortcodes.js # core/classes/class-shortcodes-menu.php # core/classes/class-shortcodes.php # core/classes/class-thumbnail-resizer.php # core/classes/widgets/class-widget-like-box.php # footer.php # functions.php # gulpfile.js # header.php # image.php # inc/admin/config.php # inc/classes/class-bootstrap-nav.php # inc/classes/class-thumbnail-resizer.php # inc/cleanup.php # inc/core/assets/css/admin.css # inc/core/assets/images/odin-thumb-placeholder.jpg # inc/core/assets/images/placeholder.png # inc/core/assets/js/admin-custom-status.js # inc/core/assets/js/admin.js # inc/core/assets/js/editor-shortcodes.js # inc/core/classes/abstracts/abstract-front-end-form.php # inc/core/classes/class-contact-form.php # inc/core/classes/class-metabox.php # inc/core/classes/class-options-helper.php # inc/core/classes/class-post-form.php # inc/core/classes/class-post-status.php # inc/core/classes/class-post-type.php # inc/core/classes/class-shortcodes-menu.php # inc/core/classes/class-shortcodes.php # inc/core/classes/class-taxonomy.php # inc/core/classes/class-term-meta.php # inc/core/classes/class-theme-options.php # inc/core/classes/class-thumbnail-resizer.php # inc/core/classes/class-user-meta.php # inc/core/classes/widgets/class-widget-like-box.php # inc/core/odin-shortcodes-editor-i18n.php # inc/css/odin-admin.css # inc/js/admin-custom-status.js # inc/js/editor-shortcodes.js # inc/js/odin-admin.js # inc/odin-shortcodes-editor-i18n.php # inc/shortcodes/class-odin-shortcodes-menu.php # inc/shortcodes/class-odin-shortcodes.php # inc/shortcodes/odin-shortcodes-editor-i18n.php # inc/template-tags.php # inc/theme/functions.php # inc/widgets/class-odin-widget-like-box.php # index.php # package.json # page-sidebar.php # page.php # search.php # searchform.php # sidebar.php # single.php # src/img/logo-login.svg # src/scss/admin-style.scss # src/scss/shared/_wordpress.scss # style.css # tag.php # template-parts/content-page.php # template-parts/content.php
Testei por aqui @adammacias, tudo certo! Achei bem interessante a estruturação, a primeira vista tá bem fácil de compreender, e aparentemente produtivo para desenvolver, mas aí só pegando pra fazer um projeto pra sentir. Vamos ver o que o resto da galera acha! |
Demorei mas testei tb..rs Encontrei apenas um problema no menu. Pois ele aparece "desconfigurado". Quando fui na parte administrativa para alterar o menu, recebi a seguinte mensagem: Verifiquei que no código não é feito o registro do menu (register_nav_menu). Ao fazer esse registro a mensagem desaparece, mas o menu fica da mesma forma. |
Vou testar em meu WAMP assim que puder. Mas parece estar muito bom só pelas imagens. |
Eu encontrei um "erro" com integração com o plugin odin-toolkit + Odin v3. Ele solicita a pasta "core" aonde estão o css + js para criação dos campos personalizados... A minha duvida é se criamos uma pasta dentro do plugin "que eu acho muito mais viável" ou deixamos na pasta do tema :) |
@chrdesigner o Odin Toolkit ficou meio que no limbo, precisa de uns updates, tem vários bugzinhos mesmo, acabei seguindo com um fork do projeto enquanto as coisas no Odin avançavam a passos lentos: https://github.com/HasteDesign/Haste-Toolkit Mas com essa renovada da v3, vou tentar dar um tapa no Toolkit também |
- Required and recommended plugins should start commented and be activated if needed
Cross platform compatibility
Olá, sou novo por aqui,
Minha única crítica é que ficar mascarando o uso do bootstrap pode ser mais chato que simplesmente usar as classes esplicitamente, por exemplo: eu quis substituir o search_form do topbar por um navbar-nav, então eu acabo duplicando alguns estilos que poderiam estar sendo usados uma unica vez. Encontrei um outro "erro" no _wordpress.scss na linha 92 temos essa declaração:
Porém, com essa declaração quebra-se as palavras em qualquer lugar e nem coloca o hifen de quebra "-", para consertar isso é só trocar o |
Conforme já indicado em #493
Adição do hook wp_body_open() no Tema
@allysonsouza @anyssa @adammacias Como tá o andamento disto? Eu aprovei 3 PRs do @hansmosl que tinham mudanças menores com atualizações de filtros deprecados e inclusão de tags novas, nada que vá criar uma enorme diferença, mas causam conflito com esta nova versão que tá pra sair, tem previsão de release dela ou é só um projeto mesmo? |
Galera, o peguei as últimas semanas para dar atenção especial para o Odin. Levei em consideração os tópicos #328 e #411 e agradeço demais o pessoal que sugeriu as mudanças e entrou na discussão.
Segue alguns destaques dessa versão:
npm run dev
inicia modo de desenvolvimento com atualização em tempo real com browsersync.npm run build
compila e minifica arquivos assets (CSS, JS, Imagens e Fonts) para produçãodist
.npm run build:{css,js,img,fonts}
compila individualmente arquivos assets para produçãodist
.npm run lang:checktextdomain
verifica text domain nos arquivos PHP do tema.npm run lang:addtextdomain
adiciona text domain nos arquivos do tema.npm run lang:makepot
cria arquivo .POT para internacionalização de tema.functions/
,assets/
,inc/
, 'components/' e etc.Acho que é isso pessoal, aguardando os testes e o feedback de vcs antes do lançamento! :)
Componentes
A grande mudança do Odin3 e talvez a diferença entre os outros temas base é a ideia é "componetizar".
Acredito que seja uma boa ideia seguir (ou tentar) o que os frameworks JS estão fazendo :)
Exemplo do componente/post/. No mesmo diretório é possível encontrar o template (1), funções (2), os estilos (3) e scripts (4) do componente. Isto facilita na hora de edita-lo ou reaproveita-lo mais tarde.
components/post/post.php
.components/post/post.php
.components/post/post.php
. Caso ainda não tenha o prefix underscore, exemploposts.scss
é gerado um arquivopost.css
emdist
, isso se for interessante link-lo na página separadamente.dist
durante a compilação, daí é só utilizarwp_enqueue_script()
no nosso passo (2) para add na página.A base é esta, se deletar o diretório
components/post
o componente morre, e para reaproveita-lo em outro tema é só copiar e colar o diretório.Estrutura
/dist/
Este diretório só é construído a partir do
npm run (dev|build)
como de costume já em outros conhecidos frameworks, detalhes dos comandos em README.md.Caso a constante SCRIPT_DEBUG estiver ativa, o Odin é esperto o suficiente para chamar os arquivos minificados ou de desenvolvimento.
/assets/
No arquivo
js/theme.js
existe a possibilidade de incluir outros arquivos nele mesmo, veja o exemplo de como o Bootstrap é incluído.O arquivo
css/theme.scss
inclui as variaveis, functions e mixins e estilos do tema e terceiros. Note que tambem inclui qualquer arquivo sass do diretório/components/
.