эхо-пост-постоянная ссылка без http и www


У меня есть эта строка...

<div class="permalink"><?php the_permalink(); ?></div>

И результат на моей странице выглядит так...

http://mysite.com/whatever/post-or-so

Я думаю, это также может выглядеть так...

http://www.mysite.com/whatever/post-or-so

Однако я хотел бы иметь только mysite.com/whatever/post-or-so без http:// или www перед ним.

Какой самый лучший и простой способ сделать это?

Не поймите меня неправильно, это не имеет ничего общего с переписыванием постоянных ссылок или чем-то еще. Просто простое эхо the_permalink() на моей странице, которое обрабатывается не как ссылка, а как обычное текст. И в этом случае я хотел бы избавиться от http или www.

Author: mathiregister, 2012-09-04

4 answers

Использовать get_permalink вместо the_permalink и манипулируйте им, как хотите, с помощью php.

 2
Author: Milo, 2012-09-04 14:52:20

Как и предположил @milo, вы можете манипулировать возвратом get_permalink(). Это можно легко сделать с помощью нескольких строковых функций php , здесь используется str_replace(). Если у вас есть необходимость удалить как http://, так и https://, дайте массив игл для str_replace().

$permalink = get_permalink();
$find = array( 'http://', 'https://' );
$replace = '';
$output = str_replace( $find, $replace, $permalink );
echo '<p>' . $output . '</p>';

Вышесказанное не касается части www(.), но принцип должен быть ясен.

Еще одной возможностью для манипулирования являются php PCRE (Регулярные выражения, совместимые с Perl) функции, используемые здесь preg_replace().

$permalink = get_permalink();
$find_h = '#^http(s)?://#';
$find_w = '/^www\./';
$replace = '';
$output = preg_replace( $find_h, $replace, $permalink );
$output = preg_replace( $find_w, $replace, $output );
echo '<p>' . $output . '</p>';
 6
Author: Nicolai, 2015-09-15 01:04:59

Существует простой метод.

$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] вернет абсолютный URL-адрес без http(ов) в начале.

 0
Author: Bravo Yeung, 2020-12-23 09:56:36
<?php
    $find = 'http://';
    $replace = '';
    $output = str_replace($find,$replace,get_permalink());
    $find = 'https://';
    $output = str_replace($find,$replace,get_permalink());

    echo '<p>' . $output . '</p>';
?>
 -1
Author: Scott Brown, 2013-12-26 16:46:53