Вывод permalink без 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.

Как предложил @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(.)
, но принцип должен быть понятен.
Другой вариант манипуляции — использование функций PCRE (Perl Compatible Regular Expressions) в PHP, здесь используется 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>';

используйте get_permalink
вместо the_permalink
и обрабатывайте ссылку как вам угодно с помощью PHP.
