Com a função capital_P_dangit() você garante que quando o nome “WordPress” possuir o W maiúsculo e o P minúsculo, seja corrigido para P maiúsculo. Veja abaixo um exemplo:
<?php
// Como este código está dentro do WordPress, ele automaticamente corrigiu o P minúsculo da frase abaixo. Então vou contar com sua imaginação para isso :D
$texto = "Estou utilizando o WordPress neste site.";
echo capital_P_dangit( $texto );
// Será exibido: Estou utilizando o WordPress neste site.
Code language: PHP (php)
Esta função é automaticamente aplicada nos seguintes lugares:
the_content
the_title
wp_title
document_title
comment_text
widget_text_content
Como desabilitar o capital_P_dangit() no WordPress
Se por algum motivo você precisar desabilitar esta função, é possível utilizar um plugin (como o Remove WordPress to WordPress filter) ou então adicionar o código abaixo no arquivo functions.php
do seu tema:
<?php
// Desabilita o uso de capital_P_dangit() no conteúdo do site
remove_filter('the_content', 'capital_P_dangit', 11);
remove_filter('the_title', 'capital_P_dangit', 11);
remove_filter('wp_title', 'capital_P_dangit', 11);
remove_filter('document_title', 'capital_P_dangit', 11);
remove_filter('comment_text', 'capital_P_dangit', 31);
remove_filter('widget_text_content', 'capital_P_dangit', 11);
Code language: PHP (php)
Já vi alguns sites recomendando fazer a remoção desta função para deixar o seu site mais rápido, mas acredito que isto não irá fazer muita diferença na velocidade na maioria dos casos. Recomendo que, no lugar disso, sejam feitas otimizações mais impactantes, como a utilização de cache ou otimização do banco de dados.
Como criar seu próprio corretor de nomes no WordPress
Utilizando como base o código da função capital_P_dangit() e o seu uso nos filtros no arquivo wp-includes/default-filters.php, criei uma versão genérica da função para fazer a correção de um nome, dado um $nome_errado e um $nome_correto. Veja como ficou no código abaixo:
<?php
// Cria função para corrigir nome: "Painelwp" para "PainelWP"
function corrige_nome_painelwp( $texto ) {
$nome_errado = "Painelwp";
$nome_correto = "PainelWP";
// Faz a alteração somente nos títulos
$filtro_atual = current_filter();
if ( 'the_title' === $filtro_atual || 'wp_title' === $filtro_atual ) {
return str_replace( $nome_errado, $nome_correto, $texto );
}
// Se a função ainda não tiver finalizada, faz substituição mais cuidadosa,
// tratando casos com os seguintes caracteres antes do nome: espaço,
// aspas simples ('), aspas duplas (“, “ e ”) e <
static $dblq = false;
if ( false === $dblq ) {
$dblq = _x( '“', 'opening curly double quote' );
}
return str_replace(
array( ' '.$nome_errado, '‘'.$nome_errado, $dblq . $nome_errado, '>'.$nome_errado, '('.$nome_errado ),
array( ' '.$nome_correto, '‘'.$nome_correto, $dblq . $nome_correto, '>'.$nome_correto, '('.$nome_correto ),
$texto
);
}
// Adiciona a correção do nome no conteúdo do WordPress
// da mesma maneira que é feito com o capital_P_dangit
foreach ( array( 'the_content', 'the_title', 'wp_title', 'document_title' ) as $filter ) {
add_filter( $filter, 'corrige_nome_painelwp', 11 );
}
add_filter( 'comment_text', 'corrige_nome_painelwp', 31 );
add_filter( 'widget_text_content', 'corrige_nome_painelwp', 11 );
Code language: PHP (php)
Aviso importante: Estes códigos foram criados apenas para fins didáticos, por isso nem sempre possuem todas as melhores práticas de segurança e otimizações necessárias. Portando, não me responsabilizo pelo seu uso em qualquer tipo de ambiente ou dou qualquer tipo de garantia para eles. Se você desejar utilizá-los será por sua própria conta e risco.
Deixe um comentário