Quero adicionar código PHP personalizado para garantir que sempre que uma página do meu site seja carregada no meu navegador, o URL dessa página seja ecoado 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 usá get_permalink()
-las, o URL da página exibida não é retornado (acredito que retorne o URL da última postagem no loop). Para essas páginas, como posso retornar o URL?
Posso conectar get_permalink()
a um gancho específico que é acionado antes da execução do loop? Ou posso, de alguma forma, sair do loop ou redefini-lo quando estiver completo?
Obrigado.
php
loop
permalinks
urls
cag8f
fonte
fonte
is_home()
oris_page( 'fr' )
etc e enfileirar o script apenas se for verdade?if ( home_url( $wp->request ) == home_url() ) { wp_enqueue_script();}
parece ser acionado em todas as páginas iniciais , independentemente do idioma. Era isso que você estava sugerindo?$_SERVER['REQUEST_URI']
e companhia? Veja esta pergunta: stackoverflow.com/q/6768793/247696Respostas:
get_permalink()
só é realmente útil para páginas e postagens únicas e funciona apenas dentro do loop.A maneira mais simples que eu já vi é esta:
$wp->request
inclui a parte do caminho da URL, por exemplo./path/to/page
ehome_url()
gera o URL em Configurações> Geral, mas você pode anexar um caminho a ele; portanto, anexamos o caminho da solicitação ao URL inicial neste código.Observe que isso provavelmente não funcionará com Permalinks definidos como Sem formatação e deixará de fora as cadeias de consulta (a
?foo=bar
parte da URL).Para obter o URL quando os links permanentes estiverem definidos como simples, você pode usá-lo
$wp->query_vars
, passando-o paraadd_query_arg()
:E você pode combinar esses dois métodos para obter o URL atual, incluindo a string de consulta, independentemente das configurações de link permanente:
fonte
echo '//' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
.echo home_url( $wp->request )
. Eu assegurei incluirglobal $wp
também. Os links permanentes não são 'Simples', mas estão definidos como 'Nome da postagem'. Também não vejo erros relevantes de PHP no log. Esta página em particular faz parte do meu site de desenvolvimento, que é bloqueado para os visitantes. Não tenho certeza se isso importa ou não. editar: Na verdade, mantenha esse pensamento - pode ser um erro do usuário. Aguardem ...trailingslashit()
a eles, dependendo das suas necessidades.Você pode usar o código abaixo para obter todo o URL atual no WordPress:
Isso mostrará o caminho completo, incluindo parâmetros de consulta.
fonte
array()
por$_GET
. ou seja:home_url(add_query_arg($_GET,$wp->request));
fonte
O código a seguir fornecerá o URL atual:
Você pode usar o código abaixo para obter o URL completo junto com os parâmetros de consulta.
Isso mostrará o caminho completo, incluindo parâmetros de consulta. Isso preservará os parâmetros de consulta se já estiver no URL.
fonte
wp-admin/plugins.php
no meu URL atual, é apenas o caminho raiz e as strings de consulta.Essa é uma maneira aprimorada de exemplo mencionada anteriormente. Ele funciona quando URLs bonitas são ativadas, mas descarta se houver algum parâmetro de consulta como / page-slug /? Param = 1 ou se a URL é feia.
O exemplo a seguir funcionará nos dois casos.
fonte
Talvez
wp_guess_url()
seja o que você precisa. Disponível desde a versão 2.6.0.fonte
home_url()
.Por que não usar apenas?
fonte