# WordPress
URL: /docs/examples/wordpress.mdx

Integre cotações da bolsa brasileira no WordPress usando shortcodes e a API brapi.dev. Exiba preços de ações em posts e páginas.

***

title: 'WordPress'
description: >-
Integre cotações da bolsa brasileira no WordPress usando shortcodes e a API brapi.dev.
Exiba preços de ações em posts e páginas.
full: false
keywords: brapi, api, wordpress, shortcode, php, cotações
openGraph:
title: Integração WordPress - brapi.dev
description: Exiba cotações da bolsa brasileira no WordPress com shortcodes
type: website
locale: pt\_BR
lastUpdated: '2025-10-12T17:30:00.000Z'
lang: pt-BR
howToSteps:

* name: 'Adicione o código ao functions.php'
  text: 'Acesse o arquivo functions.php do seu tema WordPress (ou crie um plugin personalizado) e cole o código da função brapi\_get\_stock\_price e brapi\_stock\_price\_shortcode fornecidos.'
* name: 'Configure seu token da API'
  text: 'Substitua SEU\_TOKEN no código pelo token que você obteve em brapi.dev. Você pode também armazenar o token usando get\_option para maior segurança.'
* name: 'Use o shortcode em posts e páginas'
  text: 'Em qualquer post ou página, insira o shortcode \[brapi\_cotacao ticker="PETR4"] para exibir a cotação do ativo desejado.'
* name: 'Opcionalmente, crie um bloco Gutenberg'
  text: 'Para uma experiência mais integrada, registre um bloco customizado usando register\_block\_type para permitir inserir cotações diretamente no editor de blocos.'
  howToTools:
* 'WordPress'
* 'Editor de código ou FTP'
* 'Navegador web'
  howToSupplies:
* 'Conta brapi.dev'
* 'Token de API brapi.dev'
* 'Tema WordPress com functions.php'

***

Integre cotações da bolsa brasileira no WordPress usando shortcodes personalizados.

## Implementação

Adicione este código ao arquivo `functions.php` do seu tema ou em um plugin personalizado:

```php
<?php
function brapi_get_stock_price($ticker) {
    $token = get_option('brapi_token', 'SEU_TOKEN');
    
    // Cache de 60 segundos
    $transient_key = 'brapi_quote_' . $ticker;
    $cached = get_transient($transient_key);
    
    if ($cached !== false) {
        return $cached;
    }
    
    $url = "https://brapi.dev/api/quote/{$ticker}?token={$token}";
    $response = wp_remote_get($url, ['timeout' => 10]);
    
    if (is_wp_error($response)) {
        return 'Erro ao buscar dados';
    }
    
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    
    if (isset($data['results'][0]['regularMarketPrice'])) {
        $price = $data['results'][0]['regularMarketPrice'];
        set_transient($transient_key, $price, 60);
        return $price;
    }
    
    return 'Cotação indisponível';
}

function brapi_stock_price_shortcode($atts) {
    $atts = shortcode_atts([
        'ticker' => 'PETR4',
    ], $atts);
    
    $price = brapi_get_stock_price($atts['ticker']);
    
    if (is_numeric($price)) {
        return 'R$ ' . number_format($price, 2, ',', '.');
    }
    
    return $price;
}
add_shortcode('brapi_cotacao', 'brapi_stock_price_shortcode');
?>
```

## Uso no WordPress

Use o shortcode em posts e páginas:

```
[brapi_cotacao ticker="PETR4"]
```

Exemplos:

```
[brapi_cotacao ticker="VALE3"]
[brapi_cotacao ticker="ITUB4"]
[brapi_cotacao ticker="IMAB11"]
```

## Com Widget Gutenberg

Para criar um bloco customizado:

```php
<?php
function brapi_register_block() {
    wp_register_script(
        'brapi-block',
        get_template_directory_uri() . '/blocks/brapi-block.js',
        ['wp-blocks', 'wp-element', 'wp-editor']
    );

    register_block_type('brapi/stock-quote', [
        'editor_script' => 'brapi-block',
        'render_callback' => 'brapi_render_block'
    ]);
}
add_action('init', 'brapi_register_block');

function brapi_render_block($attributes) {
    $ticker = $attributes['ticker'] ?? 'PETR4';
    return brapi_stock_price_shortcode(['ticker' => $ticker]);
}
?>
```

## Próximos Passos

* Veja exemplos em [PHP](/docs/examples/php)
* Explore [outros exemplos](/docs/examples)


