WP Manifestindependent plugin directory
manifest / editor / onlyoffice-footnote-fixer

OnlyOffice Footnote Fixer

Plugin para WordPress que corrige automaticamente os hyperlinks de notas de rodapé gerados pelo OnlyOffice ao colar conteúdo no editor Gutenberg.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/43nr1qv3/onlyoffice-footnote-fixer/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Plugin para WordPress que corrige automaticamente os hyperlinks de notas de rodapé gerados pelo OnlyOffice ao colar conteúdo no editor Gutenberg.


🧩 O Problema

Ao criar um documento no OnlyOffice com notas de rodapé e colar o conteúdo no editor Gutenberg, os hyperlinks são gerados de forma incorreta:

Âncora no corpo do texto

<!-- ❌ OnlyOffice gera -->
<a href="about:blank#_ftn1"><sup>[1]</sup></a>

<!-- ✅ Correto -->
<a href="#_ftn1" id="_ftnref1"><sup>[1]</sup></a>

Link de retorno no rodapé

<!-- ❌ OnlyOffice gera -->
<a href="about:blank#_ftnref1">[1]</a>

<!-- ✅ Correto -->
<a href="#_ftnref1" id="_ftn1">[1]</a>

Outros problemas gerados

Problema Errado Correto
href com about:blank href="about:blank#_ftn1" href="#_ftn1"
id com # no valor id="#_ftnref1" id="_ftnref1"
Atributo inválido type="internal" removido
id ausente na âncora sem id id="_ftnref1"
id ausente no rodapé sem id id="_ftn1"

✅ A Solução

O plugin intercepta o conteúdo antes de salvar no banco de dados e corrige todos os padrões problemáticos automaticamente, sem nenhuma ação manual.

Também é possível corrigir posts já publicados através da correção em massa no painel administrativo.


📋 Requisitos

Requisito Versão mínima
WordPress 5.0
PHP 7.4
Editor Gutenberg (editor de blocos)

📦 Instalação

Via painel do WordPress (recomendado)

  1. Baixe o arquivo onlyoffice-footnote-fixer.zip
  2. No painel do WordPress, acesse Plugins → Adicionar Novo
  3. Clique em Enviar Plugin
  4. Selecione o arquivo .zip e clique em Instalar Agora
  5. Após a instalação, clique em Ativar Plugin

Via FTP / terminal

# Extraia o zip dentro da pasta de plugins
unzip onlyoffice-footnote-fixer.zip -d /seu-site/wp-content/plugins/

# Ative pelo painel ou via WP-CLI
wp plugin activate onlyoffice-footnote-fixer

⚙️ Configurações

Acesse Configurações → Footnote Fixer no painel do WordPress.

Opções disponíveis

Correção automática ao salvar

Corrige os hyperlinks automaticamente toda vez que um post é salvo no Gutenberg. Ativado por padrão.

Recomendado manter ativado. A correção ocorre antes de gravar no banco de dados, garantindo que o conteúdo seja sempre salvo corretamente.

Log de correções

Registra cada correção realizada em um arquivo de log localizado em wp-content/off-fixer.log.

Útil para auditoria. Desativado por padrão.

Tipos de post

Define quais tipos de post serão processados na correção em massa. Por padrão: post e page.


🔧 Correção em Massa

Processa todos os posts já publicados e corrige as notas de rodapé que foram salvas antes da ativação do plugin.

Como usar:

  1. Acesse Configurações → Footnote Fixer
  2. Selecione os tipos de post desejados
  3. Clique em Iniciar Correção em Massa
  4. Acompanhe o progresso no log em tempo real

⚠️ Faça um backup do banco de dados antes de executar a correção em massa.

O processamento ocorre em lotes de 10 posts para evitar timeout e sobrecarga do servidor.


🔍 Ferramenta de Preview

Permite testar a correção antes de aplicar nos posts.

Como usar:

  1. Acesse Configurações → Footnote Fixer
  2. Cole um trecho de HTML copiado do OnlyOffice
  3. Clique em Testar
  4. Veja o HTML original e o corrigido lado a lado

🗂️ Estrutura do Plugin

onlyoffice-footnote-fixer/
│
├── onlyoffice-footnote-fixer.php   # Ponto de entrada, metadados e ciclo de vida
│
├── includes/
│   └── footnote-fixer.php          # Lógica de detecção e correção do HTML
│
└── admin/
    ├── settings-page.php           # Interface do painel administrativo
    └── js/
        └── admin.js                # Preview e correção em massa via AJAX

🔄 Como Funciona

Usuário cola conteúdo do OnlyOffice no Gutenberg
        │
        ▼
Clica em "Salvar" → WordPress dispara content_save_pre
        │
        ▼
Plugin verifica se há padrões do OnlyOffice no conteúdo
        │
        ├── NÃO → conteúdo salvo sem alteração
        │
        └── SIM → aplica as correções:
                │
                ├── about:blank#_ftn1   →  href="#_ftn1" id="_ftnref1"
                ├── about:blank#_ftnref →  href="#_ftnref1" id="_ftn1"
                ├── id="#_ftn1"         →  id="_ftn1"
                └── type="internal"     →  removido
                │
                ▼
        HTML corrigido salvo no banco de dados

🪝 Hooks Utilizados

Hook Tipo Descrição
content_save_pre filter Corrige antes de salvar no banco
the_content filter Corrige na exibição (fallback para posts antigos)
wp_ajax_off_fixer_bulk_fix action Endpoint AJAX da correção em massa
wp_ajax_off_fixer_preview action Endpoint AJAX do preview
admin_menu action Registra a página de configurações
admin_init action Registra as opções na Settings API
admin_enqueue_scripts action Carrega o JS apenas na página do plugin
plugin_action_links_* filter Adiciona link "Configurações" na lista de plugins
plugins_loaded action Inicializa o plugin com segurança

🗄️ Dados Armazenados

O plugin armazena apenas uma opção no banco de dados:

Opção Tipo Descrição
off_fixer_options array Configurações do plugin
off_fixer_version string Versão instalada

Ao desinstalar o plugin, todas as opções e o arquivo de log são removidos automaticamente.


🏗️ Geração do ZIP

Linux / macOS

cd wp-content/plugins/

zip -r onlyoffice-footnote-fixer.zip onlyoffice-footnote-fixer/ \
    --exclude "*.git*" \
    --exclude "*.DS_Store" \
    --exclude "*.zip"

Windows (PowerShell)

Compress-Archive -Path .\onlyoffice-footnote-fixer\ `
                 -DestinationPath .\onlyoffice-footnote-fixer.zip

Script de build

# Dentro da pasta do plugin
chmod +x build.sh
./build.sh

📝 Changelog

1.0.0

  • Lançamento inicial
  • Correção de href="about:blank#_ftn*"
  • Correção de id="#_ftn*" com hash no valor
  • Remoção do atributo type="internal"
  • Adição de id ausente nas âncoras
  • Correção em massa com progresso em tempo real
  • Ferramenta de preview no painel
  • Log de correções opcional

📄 Licença

Distribuído sob a licença GPLv2 or later. Consulte https://www.gnu.org/licenses/gpl-2.0.html para mais detalhes.