Como obter o URL da página atual exibida?

37

Eu quero adicionar código PHP personalizado para garantir que, sempre que uma página do meu site for carregada no meu navegador, a URL dessa página seja exibida na tela. Eu posso usar echo get_permalink() , mas isso não funciona em todas as páginas. Algumas páginas (por exemplo, minha página inicial ) exibem várias postagens, e se eu usar get_permalink() nessas páginas, o URL do arquivo exibido A página não é retornada (acredito que retorna a URL do último post no loop). Para estas páginas, como posso devolver o URL?

Posso anexar get_permalink() a um gancho específico que é acionado antes que o loop seja executado? Ou posso de alguma forma sair do loop ou redefini-lo quando estiver completo?

Obrigado.

    
por cag8f 25.07.2017 / 13:37
fonte

4 respostas

54

get_permalink() só é realmente útil para páginas únicas e postagens, e funciona apenas dentro do loop.

A maneira mais simples que vi é esta:

global $wp;
echo home_url( $wp->request )

$wp->request inclui a parte do caminho do URL, por exemplo. /path/to/page e home_url() geram o URL em Configurações > Geral, mas você pode adicionar um caminho a ele, por isso, estamos anexando o caminho da solicitação ao URL inicial nesse código.

Observe que isso provavelmente não funcionará com Permalinks definidos como Simples e deixarão as strings de consulta (a parte ?foo=bar do URL).

    
por Jacob Peattie 25.07.2017 / 14:00
fonte
6

Você pode usar o código abaixo para obter todo o URL atual no wordpress

global $wp;  
$current_url = home_url(add_query_arg(array(),$wp->request));

Isso mostrará o caminho completo, incluindo os parâmetros de consulta

    
por rescue1155 05.04.2018 / 12:11
fonte
0

Esta é uma maneira aprimorada de exemplo mencionada anteriormente. Funciona quando URLs bonitas são ativadas, mas descarta se há algum parâmetro de consulta como / page-slug /? Param = 1 ou a URL é feia.

O exemplo a seguir funcionará nos dois casos.

    $query_args = array();

    $query = wp_parse_url( $YOUR_URL );

    $permalink = get_option( 'permalink_structure' );

    if ( empty( $permalink ) ) {

        $query_args = $query['query'];

    }

    echo home_url( add_query_arg( $query_args , $wp->request ) )
    
por tolginho 11.06.2018 / 18:08
fonte
0
function current_location()
{
    if (isset($_SERVER['HTTPS']) &&
        ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
        isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
        $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
        $protocol = 'https://';
    } else {
        $protocol = 'http://';
    }
    return $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}

echo current_location();
    
por Shree Sthapit 29.11.2018 / 11:32
fonte