Hierarquia de modelos
Codex → Temas no BuddyPress → Hierarquia de modelos
O BuddyPress 1.7 introduziu a compatibilidade universal de tema, tornando mais fácil para os designers de tema WordPress trabalharrm com O BuddyPress.
O que isto significa é que se você está em uma página do BuddyPress, o BuddyPress vai procurar um arquivo de modelo específico no seu tema e utilizar esse modelo para injetar seu conteúdo.
Estes são os modelos que o BP procura, por ordem de prioridade:
plugin-buddypress.php
buddypress.php
community.php
generic.php
page.php
single.php
index.php
Na maioria das vezes o BP vai usar page.php
desde que arquivo de modelo existe na maioria dos temas WordPress. No entanto, se você quiser páginas do BuddyPress em estilo diferente de uma página normal WordPress, você pode adicionar um arquivo de modelo chamado buddypress.php
no diretório do seu tema e o BP vai usar esse modelo em vez do que estiver acima do arquivo page.php na hierarquia acima .
Tudo ok se você quiser que todas as suas páginas BuddyPress tenham a mesma aparência, mas e se você quiser estilos diferentes para certas páginas, como a página Grupo ou Membros? Você vai perceber que isso não é muito possível.
E se o BuddyPress tiver uma hierarquia de modelos mais avançada que procura por arquivos de modelos adicionais?
O BuddyPress 1.8 agora traz este recurso!
Visão geral sobre a Hierarquia de Modelos no BuddyPress
Página do Membro
Se você estiver na página de um membro, o BuddyPress usará a seguinte hierarquia de modelos:
(Vamos usar a seguinte URL como um exemplo – exemplo.com/members/admin/activity/mentions/)
- /buddypress/members/single/index-id-{id}.php – Se a ID do membro for 1, o BuddyPress vai procurar por /buddypress/members/single/index-id-1.php
- /buddypress/members/single/index-nicename-{nicename}.php – Observando a URL de exemplo, o nicename do usuário é admin, o BuddyPress vai procurar por /buddypress/members/single/index-nicename-admin.php
- /buddypress/members/single/index-action-{action}.php – Observando a URL de exemplo, a ação do usuário é mentions, o BuddyPress vai procurar por /buddypress/members/single/index-action-mentions.php
- /buddypress/members/single/index-component-{component}.php –Observando a URL de exemplo, o componente é activity, o BuddyPress vai procurar por /buddypress/members/single/index-component-activity.php
- /buddypress/members/single/index.php – Se esse arquivo de modelo é usado em seu tema, todas as páginas associadas vão usar este modelo. O BP vai tentar usar esse arquivo se os outros quatro modelos mencionados acima não forem encontrados.
- O resto da base de modelos como listado acima de 1 a 7.
Se você tiver problemas para determinar a ação ou componente, você pode tentar usar este plugin de depuração para mostrar qual página BuddyPress está em uso.
Página do Grupo
Se você estiver na página de um grupo, o BuddyPress usará a seguinte hierarquia de modelos:
(Vamos usar a seguinte URL como um exemplo – exemplo.com/groups/historia-antiga/members/)
- /buddypress/members/single/index-id-{id}.php -Se a ID do grupo for 1, o BuddyPress vai procurar por/buddypress/members/groups/index-id-1.php
- /buddypress/members/single/index-slug-{slug}.php – Observando a URL de exemplo, o slug do grupo é historia-antiga, o BuddyPress vai procurar por /buddypress/members/single/index-slug-my-test-group.php
- /buddypress/groups/single/index-action-{action}.php –Observando a URL de exemplo, a ação é members, o BuddyPress vai procurar por /buddypress/members/single/index-action-members.php
- /buddypress/members/single/index-status-{status}.php – Pode ser público, privado ou oculto. Então, digamos que você quer que todos os grupos privados tenham uma aparência semelhante, você deve acrescentar o modelo – /buddypress/members/single/index-status-private.php. O BP vai procurar usar esse arquivo se os outros três modelos mencionados acima não forem encontrados.
- /buddypress/members/single/index.php – Se esse arquivo de modelo é usado por seu tema, todas as páginas do grupo vai usar esse modelo. O BP vai tentar usar esse arquivo se os outros três modelos mencionados acima não forem encontrados.
- O resto da base de modelos como listado acima de 1 a 7.
Página de atividade
Se você estiver na página de uma atividade, o BuddyPress usará a seguinte hierarquia de modelos:
- /buddypress/activity/single/index.php
- O resto da base de modelos como listado acima de 1 a 7.
Página Atividades
Se você estiver na página do diretório Atividades, o BuddyPress usará a seguinte hierarquia de modelos:
- /buddypress/activity/index-directory.php
- O resto da base de modelos como listado acima de 1 a 7.
Página Membros
Se você estiver na página do diretório Membros, o BuddyPress usará a seguinte hierarquia de modelos:
- /buddypress/members/index-directory.php
- O resto da base de modelos como listado acima de 1 a 7.
Página Grupos
Se você estiver na página do diretório Grupos, o BuddyPress usará a seguinte hierarquia de modelos:
- /buddypress/groups/index-directory.php
- O resto da base de modelos como listado acima de 1 a 7.
Página Criando um Grupo
Se você estiver na página de criação de um grupo, o BuddyPress usará a seguinte hierarquia de modelos:
- /buddypress/groups/index-create.php
- O resto da base de modelos como listado acima de 1 a 7.
Página Site
Aplicável somente se você estiver executando o WordPress multisite.
Se você estiver na página do diretório Sites, o BuddyPress usará a seguinte hierarquia de modelos:
- /buddypress/blogs/index-directory.php
- O resto da base de modelos como listado acima de 1 a 7.
Página Criando um Site
Se você estiver na página de criação de um site, o BuddyPress usará a seguinte hierarquia de modelos:
- /buddypress/groups/index-create.php
- O resto da base de modelos como listado acima de 1 a 7.
Página Registrar
Se você estiver na página de registro de usuário, o BuddyPress usará a seguinte hierarquia de modelos:
- /buddypress/groups/index-register.php
- O resto da base de modelos como listado acima de 1 a 7.
Página Ativar
Se você estiver na página de ativação de usuário, o BuddyPress usará a seguinte hierarquia de modelos:
- /buddypress/groups/index-activate.php
- O resto da base de modelos como listado acima de 1 a 7.