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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top