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 wp_parse_url() no WordPress - Daniel Kossmann

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 *