Com a função PHP wp_parse_url() [em inglês] você gera um array a partir de uma URL, separando os valores por tipo (scheme, host, path, port, …).

O primeiro passo é obter a URL e fazer a limpeza da mesma, para isso vamos usar a função PHP esc_url_raw() com um trecho de código que comentei no PainelWP 97 e adicionar uma chamada da função wp_parse_url() na variável da URL.

// URL
$url = "https://www.painelwp.com.br/newsletter-wordpress-edicao-97/?ola=mundo&como=vai";

// Faz a limpeza da URL
$url = esc_url_raw( $url );

// Verifica se a URL é válida
if ( $url ) {
    // Gera um array a partir da URL
    $url_array = wp_parse_url( $url );
    // Executa ação se for um array
    if ( is_array( $url_array ) ) {
        // Executa uma ação
                      
    }
}
Code language: PHP (php)

O resultado de $url_array é:

array(
    [scheme] => https
    [host] => www.painelwp.com.br
    [path] => /newsletter-wordpress-edicao-97/
    [query] => ola=mundo&como=vai
)Code language: PHP (php)

Seguem algumas ideias de ações que você pode executar:

  1. Fazer a verificação do protocolo (scheme) para ver se é HTTP ou HTTPS;
  2. Verificar o domínio (host);
  3. Pegar o caminho da página que está sendo acessada (path);
  4. Pegar os parâmetros da URL (query).

Por que não utilizar a função esc_url() ?

A minha primeira escolha para o código acima foi a função PHP esc_url(), mas obtive o seguinte resultado ao processar a URL:

array(
    [scheme] => https
    [host] => www.painelwp.com.br
    [path] => /newsletter-wordpress-edicao-97/
    [query] => ola=mundo&
    [fragment] => 038;como=vai
)
Code language: PHP (php)

Pesquisando um pouco descobri que esta função converte o & em sua versão HTML entity para seguir as especificações do XHTML e isso compromete o resultado da wp_parse_url().



Comments

Deixe um comentário

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