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:
- Fazer a verificação do protocolo (
scheme
) para ver se é HTTP ou HTTPS; - Verificar o domínio (
host
); - Pegar o caminho da página que está sendo acessada (
path
); - 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()
.
Deixe um comentário