Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the hustle domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114
Como utilizar capital_P_dangit() no WordPress (PHP) - Daniel Kossmann

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:

  1. the_content
  2. the_title
  3. wp_title
  4. document_title
  5. comment_text
  6. 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( '&#8220;', 'opening curly double quote' );
	}

	return str_replace(
		array( ' '.$nome_errado, '&#8216;'.$nome_errado, $dblq . $nome_errado, '>'.$nome_errado, '('.$nome_errado ),
		array( ' '.$nome_correto, '&#8216;'.$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.



Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *