Plugin WordPress para integração com a API BVS Saúde, permitindo exibir recursos através de shortcode genérico personalizável.
- Características
- Instalação
- Configuração
- Shortcode Genérico
- API Client
- Personalização
- Desenvolvimento
- 🔍 Busca por múltiplos filtros: país, assunto, tipo, título
- 🎛️ Filtros Dinâmicos: Configure filtros personalizados para cada tipo de recurso
- 📱 Layout responsivo: grid de cards adaptável
- 📄 Paginação integrada: navegação fácil entre resultados
- 🎨 Customizável: CSS e JavaScript customizáveis
- 🔒 Seguro: sanitização de inputs e escape de outputs
- 🔄 Genérico: Um shortcode para todos os tipos de recursos
- 🏷️ Tags de filtros ativos: visualização dos filtros aplicados
- Clone ou faça download do repositório para
/wp-content/plugins/ - Ative o plugin no WordPress
- Configure as APIs em BVSalud > Configurações
cd wp-content/plugins
git clone [repository-url] api-consumer-wp-pluginApós ativar o plugin, vá para BVSalud > Configurações e configure:
- API Token: Token de autenticação fornecido pela BIREME
Configure cada tipo de recurso com sua URL base. Para cada recurso, você pode configurar:
- Tipo: Nome do recurso (ex:
journals,events,webResources) - URL: URL base da API para este recurso
- Filtros: Filtros dinâmicos personalizáveis
Cada recurso pode ter múltiplos filtros configuráveis:
- Clique em Gerenciar ao lado do recurso
- Adicione filtros com os seguintes campos:
- Chave (Key): Nome do campo na API Solr (ex:
publication_country,descriptor_filter) - Label: Nome amigável para exibição (ex: "País", "Tema")
- Chave (Key): Nome do campo na API Solr (ex:
- Salve os filtros
Os filtros configurados serão exibidos automaticamente quando show_filters="true" for usado no shortcode.
O plugin utiliza um shortcode genérico [bvs_resources] que funciona com todos os tipos de recursos da API BVSalud.
[bvs_resources type="TIPO" parâmetros...]| Tipo | Descrição |
|---|---|
journals |
Periódicos científicos |
webResources |
Recursos web (bases de dados, portais) |
events |
Eventos em saúde |
legislations |
Leis, decretos, normas |
multimedia |
Vídeos, áudios, imagens |
| Parâmetro | Descrição | Padrão |
|---|---|---|
type |
Tipo de recurso | - |
subject |
Filtrar por área temática | - |
search |
Busca livre | - |
searchTitle |
Buscar por título específico | - |
limit |
Itens por página | 12 |
max |
Máximo de itens total | 50 |
show_pagination |
Habilitar paginação | false |
page |
Página inicial | 1 |
show_filters |
Mostrar sidebar de filtros | false |
// Recursos web com filtros
[bvs_resources type="webResources" show_filters="true"]
// Eventos com paginação
[bvs_resources type="events" show_pagination="true" limit="8"]
// Legislações por assunto
[bvs_resources type="legislations" subject="Saúde Pública"]
// Multimídia com busca
[bvs_resources type="multimedia" search="covid" limit="6"]O shortcode aceita parâmetros através da URL para permitir links diretos e filtros:
| Parâmetro URL | Mapeia para | Exemplo |
|---|---|---|
bvsSearchTitle |
searchTitle |
?bvsSearchTitle=saúde+pública |
bvsTitle |
searchTitle |
?bvsTitle=saúde+pública |
bvsLimit |
limit |
?bvsLimit=20 |
bvsMax |
max |
?bvsMax=50 |
bvsPage |
page |
?bvsPage=2 |
Ative show_filters="true" para exibir sidebar com filtros:
[bvs_resources type="journals" show_filters="true"]Funcionalidades:
- ✅ Campo de busca por título
- ✅ Checkboxes dinâmicos baseados nos filtros configurados
- ✅ Botões "Buscar" e "Limpar"
- ✅ Tags de filtros ativos visíveis
- ✅ Contagem de resultados por filtro
- ✅ Suporte a valores multilíngue
O plugin permite personalizar a aparência através de CSS e JavaScript customizados.
Na página de configurações, você pode adicionar CSS para personalizar:
- Cores e estilos dos cards
- Layout do grid
- Tipografia
- Filtros sidebar
- Paginação
Nota: CSS e JavaScript customizados são executados apenas para usuários administradores com a capacidade unfiltered_html.
O plugin fornece classes para interagir com a API BVS:
use BV\API\BvsaludGenericClient;
$client = new BvsaludGenericClient($apiUrl, $token);
// Buscar recursos
$results = $client->getResources([
'q' => '*:*',
'count' => 20,
'fq' => 'country:"Brazil"'
]);
// Obter países disponíveis
$countries = $client->getAvailableCountries();O plugin inclui DTOs (Data Transfer Objects) para cada tipo de recurso:
JournalDto- PeriódicosEventDto- EventosWebResourceDto- Recursos webLegislationDto- LegislaçõesMultimediaDto- MultimídiaBibliographicDatabaseDto- Bases bibliográficas
api-consumer-wp-plugin/
├── src/
│ ├── Admin/ # Painel administrativo
│ │ ├── AdminMenu.php # Menu principal
│ │ └── SettingsPage.php # Página de configurações
│ ├── API/ # Cliente e DTOs da API
│ │ ├── BvsaludGenericClient.php
│ │ ├── JournalDto.php
│ │ ├── EventDto.php
│ │ ├── WebResourceDto.php
│ │ ├── LegislationDto.php
│ │ ├── MultimediaDto.php
│ │ └── BibliographicDatabaseDto.php
│ ├── Assets/ # CSS e JavaScript
│ │ ├── admin.css
│ │ ├── admin.js
│ │ ├── public.css
│ │ └── public.js
│ ├── Shortcodes/ # Shortcodes e Helpers
│ │ ├── BvsResourcesShortcode.php
│ │ ├── Classes/
│ │ │ └── ResourcesParams.php
│ │ └── Helpers/ # Conversores para ResourceCardDto
│ ├── Support/ # Helpers e utilitários
│ │ ├── Cache.php
│ │ ├── Helpers.php
│ │ └── ResourceCardDto.php
│ ├── Templates/ # Templates de exibição
│ │ ├── bvs-grid.php
│ │ ├── components/
│ │ └── resources-sidebar.php
│ ├── Autoloader.php
│ └── Plugin.php
├── bvsalud-integrator.php # Arquivo principal do plugin
├── uninstall.php # Script de desinstalação
└── README.md
- PHP 7.4+
- WordPress 5.0+
- PSR-4 para autoloading
- PSR-12 para coding standards
- Namespaces:
BV\* - Classes finais para DTOs e Shortcodes
O plugin foi projetado para ser facilmente extensível:
- Adicionar novos tipos de recursos: Crie novos DTOs e conversores
- Customizar templates: Edite os templates em
src/Templates/ - Adicionar novos filtros: Configure na página de configurações
# Clonar o repositório
git clone [repository-url] wp-content/plugins/api-consumer-wp-plugin
# Ativar o plugin via WP-CLI
wp plugin activate api-consumer-wp-pluginUtilize o docker compose dentro da pasta TestResources para testes locais, o arquivo gera um ambiente wp:
Altere o trecho abaixo para apontar para sua pasta de desenvolvimento do plugin:
volumes:
- wp1_data:/var/www/html
- /var/dev/bireme/wp/api-consumer-wp-plugin:/var/www/html/wp-content/plugins/api-consumer-wp-plugin:cached
- /var/dev/bireme/wp/country-page-wp-plugin:/var/www/html/wp-content/plugins/country-page-wp-plugin:cached
- Verifique se o recurso está configurado em BVSalud > Configurações
- Confirme que o token da API está correto
- Verifique se a URL da API está acessível
- Revise os filtros aplicados
- Certifique-se de que
show_filters="true"está no shortcode - Verifique se os filtros estão configurados para o tipo de recurso
- Confirme que as chaves dos filtros correspondem aos campos na API
- Verifique se você tem a capacidade
unfiltered_html - Limpe o cache do WordPress
- Verifique se há erros de sintaxe no CSS/JS
- Limpe o cache do WordPress
- Use ferramentas de desenvolvimento para limpar cache do navegador
- Verifique os tempos de expiração do cache em
src/Support/Cache.php
Para reportar bugs ou solicitar funcionalidades, entre em contato com a equipe de desenvolvimento da BIREME.
Jefferson Augusto Lopes
Desenvolvido para BIREME - Centro Latino-Americano e do Caribe de Informação em Ciências da Saúde
Este plugin é propriedade da BIREME e está sujeito aos termos de licença definidos pela organização.