Как отобразить URL текущей страницы?

Я хочу добавить пользовательский PHP-код, чтобы гарантировать, что всякий раз, когда страница моего сайта загружается в моем браузере, URL-адрес этой страницы отображается на экране. Я могу использовать echo get_permalink(), но это не работает на всех страницах. Некоторые страницы (например, моя домашняя страница ) отображают несколько сообщений, и если я использую get_permalink() на этих страницах, URL-адрес отображаемой страницы не возвращается (я верю, что он возвращает URL-адрес последнего сообщения в цикле). Для этих страниц, как я могу вернуть URL?

Можно ли связать get_permalink() с конкретным хостом, который срабатывает до того, как цикл будет выполнен? Или я могу как-то вырваться из цикла или сбросить его после его завершения?

Спасибо.

26 голосов | спросил cag8f 25 J000000Tuesday17 2017, 14:37:59

3 ответа


42

get_permalink() полезен только для отдельных страниц и сообщений и работает только внутри цикла.

Самый простой способ, который я видел, это:

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

$wp->request включает в себя часть пути URL-адреса, например. /path/to/page и home_url() выводит URL в настройках> Общие, но вы можете добавить путь к нему, поэтому мы добавляем путь запроса к домашнему URL-адресу в этом коде.

Обратите внимание, что это, вероятно, не будет работать с параметрами Permalinks, установленными на Plain, и оставит строки запроса (часть кода ?foo=bar).

ответил Jacob Peattie 25 J000000Tuesday17 2017, 15:00:07
5

Вы можете использовать нижеприведенный код, чтобы получить весь текущий URL-адрес в wordpress

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

Это покажет полный путь, включая параметры запроса

ответил rescue1155 5 PMpThu, 05 Apr 2018 13:11:57 +030011Thursday 2018, 13:11:57
0

Это улучшенный пример, упомянутый ранее. Он работает, когда разрешены красивые URL-адреса, однако он отбрасывает, если есть какой-либо параметр запроса, например /page-slug /? Param = 1 , или URL-адрес уродливый вообще.

Следующий пример будет работать в обоих случаях.

    $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 ) )
ответил tolginho 11 J0000006Europe/Moscow 2018, 19:08:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132