WordPress:Thema

De BrapciWiki
Ir para navegação Ir para pesquisar


Para que o WordPress verifique atualizações do seu tema através da função wp_version_check(), você precisa seguir algumas diretrizes para fornecer as informações corretas do seu tema. Aqui estão os passos básicos para registrar seu tema para verificação de atualizações:

Adicione informações do seu tema no arquivo style.css: No diretório do seu tema, abra o arquivo style.css. Certifique-se de incluir os cabeçalhos de informações do tema, como o nome do tema, a versão atual, a descrição, o autor e outras informações relevantes. Aqui está um exemplo de como essas informações podem ser estruturadas:

/*
Theme Name: Seu Tema
Theme URI: http://exemplo.com/
Description: Descrição do seu tema.
Author: Seu Nome
Author URI: http://exemplo.com/
Version: 1.0.0
*/

Defina o diretório do seu tema no arquivo functions.php: No arquivo functions.php do seu tema, você precisa definir o diretório do tema usando a função wp_get_theme() e, em seguida, fornecer as informações do tema para o WordPress. Aqui está um exemplo de como fazer isso:

<?php
$theme = wp_get_theme();
$theme->update_check_interval = 43200; // Intervalo em segundos para verificar atualizações (12 horas)
$theme->parent = 'nome-do-tema-pai'; // Se o tema é um filho de outro tema
$theme->api_url = 'https://seusite.com/atualizacoes/'; // URL da API do seu tema para verificação de atualizações
$theme->slug = 'seu-tema-slug'; // Slug do seu tema
// Informações opcionais para atualizações
$theme->display_name = 'Seu Tema'; // Nome legível do tema
$theme->author = 'Seu Nome'; // Nome do autor do tema
$theme->homepage = 'http://exemplo.com/'; // URL da página inicial do tema
add_filter('pre_set_site_transient_update_themes', function ($transient) use ($theme) {
   if (empty($transient->checked[$theme->stylesheet])) {
       return $transient;
   }
   $response = wp_remote_get($theme->api_url);
   if (!is_wp_error($response)) {
       $data = json_decode(wp_remote_retrieve_body($response));
       if (isset($data->new_version) && version_compare($theme->version, $data->new_version, '<')) {
           $transient->response[$theme->stylesheet] = (object) array(
               'new_version' => $data->new_version,
               'package' => $data->package_url,
               'url' => $theme->homepage,
           );
       }
   }
   return $transient;
});