WordPress Subscribe2 plug-in escapa caracteres no nome do blog ao enviar e-mail
-
19-09-2019 - |
Pergunta
Eu estou usando Subscribe2 plugin no meu novo blog próximo WordPress ( http://www.adlerr.com ). O título do meu blog é "Blog do Roee Adler". Ao enviar um e-mail, Subscribe2 escapa o apóstrofo no título do meu blog, e o assunto do email é recebido como se segue:
[Roee Adler's Blog] Please confirm your request
O corpo do e-mail é:
Roee Adler's Blog has received a request to
subscribe for this email address. To complete your
request please click on the link below:
...
Eu naturalmente gostaria de ter a versão "normal" escapou-un do meu nome do blog no título e no corpo.
Eu fiz esta pergunta em doctype.com sem sucesso ( aqui está a questão ), no entanto a partir das respostas eu entendi isso provavelmente requer alterações no código PHP do plugin, então eu preferiria pedir-lo aqui.
A seguir as respostas que recebi sobre doctype, eu alterou o seguinte trecho de código:
function substitute($string = '') {
if ('' == $string) {
return;
}
$string = htmlspecialchars_decode(str_replace("BLOGNAME", get_option('blogname'), $string));
$string = str_replace("BLOGLINK", get_bloginfo('url'), $string);
$string = htmlspecialchars_decode(str_replace("TITLE", stripslashes($this->post_title), $string));
$string = str_replace("PERMALINK", $this->permalink, $string);
No código acima, eu adicionei um invólucro htmlspecialchars_decode
para a geração de ambos BLOGNAME e título, no entanto, o assunto do e-mail e corpo ainda contém '
.
O que posso fazer para resolver isso?
Graças
Solução
De acordo com a documentação sobre htmlspecialchars_decode
, você precisa para passar ENT_QUOTES
como o argumento $quote_style
para ele para converter '
para '
. Tente configuração ENT_QUOTES
:
function substitute($string = '') {
if ('' == $string) {
return;
}
$string = htmlspecialchars_decode(str_replace("BLOGNAME", get_option('blogname'), $string), ENT_QUOTES);
$string = str_replace("BLOGLINK", get_bloginfo('url'), $string);
$string = htmlspecialchars_decode(str_replace("TITLE", stripslashes($this->post_title), $string), ENT_QUOTES);
$string = str_replace("PERMALINK", $this->permalink, $string);
Outras dicas
WordPress substitui um apóstrofo no título do blog com '
antes que armazena no banco de dados. Se você quiser substituir esse, editar o arquivo functions.php e insira a seguinte declaração:
update_option("blogname", "My Blog's Title With Apostrophe");
Isso vai forçar o título para ser exatamente o que você entra. Alterações no título do blog que você faz no menu Configurações não terá nenhum efeito.