¿Cómo se muestra la URL de la página actual?

37

Quiero agregar un código PHP personalizado para garantizar que cada vez que una página en mi sitio se cargue en mi navegador, la URL de esa página se muestre en la pantalla. Puedo usar echo get_permalink() , pero eso no funciona en todas las páginas. Algunas páginas (por ejemplo, mi página de inicio ) muestran varias publicaciones, y si uso get_permalink() en estas páginas, se muestra la URL de La página no se devuelve (creo que devuelve la URL de la última publicación del bucle). Para estas páginas, ¿cómo puedo devolver la URL?

¿Puedo adjuntar get_permalink() a un enganche particular que se dispara antes de que se ejecute el bucle? ¿O puedo de alguna manera salir del bucle o restablecerlo una vez que esté completo?

Gracias.

    
pregunta cag8f 25.07.2017 - 13:37

4 respuestas

54

get_permalink() solo es realmente útil para páginas individuales y publicaciones, y solo funciona dentro del bucle.

La forma más sencilla que he visto es la siguiente:

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

$wp->request incluye la parte de la ruta de la URL, por ejemplo. /path/to/page y home_url() generan la URL en Configuración > General, pero puede adjuntar una ruta a ella, por lo que estamos adjuntando la ruta de solicitud a la URL de inicio en este código.

Tenga en cuenta que esto probablemente no funcionará con Permalinks establecido en Plain, y dejará fuera de las cadenas de consulta (la parte ?foo=bar de la URL).

    
respondido por el Jacob Peattie 25.07.2017 - 14:00
6

Puede usar el siguiente código para obtener la URL actual completa en wordpress

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

Esto mostrará la ruta completa incluyendo los parámetros de consulta

    
respondido por el rescue1155 05.04.2018 - 12:11
0

Esta es una forma mejorada de ejemplo que se mencionó anteriormente. Funciona cuando las URL bonitas están habilitadas, pero se descarta si hay algún parámetro de consulta como / page-slug /? Param = 1 o la URL es fea en absoluto.

El siguiente ejemplo funcionará en ambos 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 ) )
    
respondido por el tolginho 11.06.2018 - 18:08
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();
    
respondido por el Shree Sthapit 29.11.2018 - 11:32

Lea otras preguntas en las etiquetas