无http和www的Echo POST永久链接

时间:2012-09-04 作者:mathiregister

我有这条线…

<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。

4 个回复
最合适的回答,由SO网友:Milo 整理而成

使用get_permalink 而不是the_permalink 并通过php任意操作它。

SO网友:Nicolai Grossherr

就像@milo建议你可以操纵get_permalink(). 这可以通过几个php轻松完成string functions, 这里使用的是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(.) 部分,但原则应该明确。

另一种可能的操作是phpPCRE (Perl Compatible Regular Expressions) functions, 此处使用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>\';

SO网友:Bravo Yeung

有一个简单的方法。

$_SERVER[\'HTTP_HOST\'].$_SERVER[\'REQUEST_URI\'] 将返回开头没有http的绝对url。

SO网友:Scott Brown
<?php
    $find = \'http://\';
    $replace = \'\';
    $output = str_replace($find,$replace,get_permalink());
    $find = \'https://\';
    $output = str_replace($find,$replace,get_permalink());

    echo \'<p>\' . $output . \'</p>\';
?>
结束

相关推荐

Expiring Unique URLs

所以前几天我想为客户的网站开发一个新功能。每次新访问者单击Wordpress中的特定按钮时的唯一下载URL整个过程是如何进行的:比如说,我的网站左侧小部件区域有一个按钮,上面写着“立即下载电子书”。-我需要将每个访问者重定向到一个唯一的URL(该URL将在x个时间后过期)-在单独的页面上,下载链接将正常提供您是否知道是否有插件或脚本可以处理这样的任务或其他解决方案来实现这一点?谢谢