【问题标题】:How can I change absolute URL to relative in WordPress -> pagination -> previous\next_posts_link?如何在 WordPress -> 分页 -> previous\next_posts_link 中将绝对 URL 更改为相对 URL?
【发布时间】:2011-11-23 08:34:25
【问题描述】:
我有:
<?php previous_posts_link(' '); ?> -> <a href="http://example.com/path"> </a>
我需要:
<?php previous_posts_link(' '); ?> -> <a href="/path"> </a>
【问题讨论】:
标签:
php
wordpress
url
pagination
relative-path
【解决方案1】:
Wordpress 默认使用绝对 URL。
您可以创建一个与get_pagenum_link 挂钩的过滤器并更改链接:
add_filter('get_pagenum_link', function($url) {
$base = 'http://example.com/';
if (0 === strpos($url, $base)) {
$url = '/'.substr($url, strlen($base));
}
return $url;
});
或者,您可以通过使用输出缓冲区来捕获整个页面输出并根据缓冲区内的需要更改链接。 DOMDocument 和 DOMXPath 在这里很有帮助。另一个有用的库是Net_URL2,有用的函数是parse_url 和http_build_url。