当向页面或帖子添加常规链接时,WordPress会将该页面的网址保存为链接。 这意味着,若该网址更改,该链接便断开。

WordPress 使更改页面地址变得过于简单,导致所有入站链接失效(404错误)。 以下是其中一些做法:

  • 更改页面父级
  • 更改别名(slug)
  • 更改网站永久链接结构

WPML可避免 URL 的更改导致入站链接失效。 当您创建链接时,WPML 自动使链接具有“黏性”。 它不是存储该页面的 URL(在创建链接的时候),而是存储页面编号 无论您做何操作,页面编号永远不会改变。

此后当显示页面时,WPML 插入您要连接到的页面的永久链接。 一旦 URL 发生改变,所有连接到它的页面都立即更新并将连接到正确的地址。

以下屏幕快照显示当启用“黏性链接”后内部链接在数据库中看起来的样子:

黏性链接」 src=」https://wpml.org/wp-content/uploads/2009/03/sticky-links.png」 alt=」常规链接被 WPML 转变为黏性链接」 width=」628″ height=」254″>
常规链接被 WPML 转变为黏性链接

您的用户永远不会看到这些“奇怪”的链接。 当显示页面时,WPML 将把它们替换为当前的永久链接。

启动黏性链接模块后,便可控制它处理什么字符串。 要执行此操作,请前往WPML -> 黏性链接页面。

处理前的黏性链接
处理前的黏性链接

WPML默认会将帖子正文中的所有链接转变为黏性链接。 你也可将小工具和字符串中的链接转变为黏性链接。

WPML 将让您将所有常规链接批量替换为黏性链接。 它也将报告任何现有无效链接并帮助修复它们。

如果您在创建一些内容后已启用黏性链接,该现有内容中的链接不会立即变成黏性链接。

黏性链接管理屏幕显示多少内容可能包括常规(非黏性)链接。 WPML可以扫描该内容并将所有链接转换为黏性链接。 点击扫描按扭可执行该操作。

点击还原黏性网址为永久链接可随时将链接还原到常规(非黏性)。

链接到不同语言的页面

有时,您可能要向其它语言的页面插入链接。 黏性链接自动调整链接,这可能阻止您执行该操作而将该链接调整为相同的语言。

向主题的functions.php文件添加以下筛选项才能添加链接到其它语言的页面。

Allow links to pages in other languages
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );

function wpml_sl_blacklist_requests( $blacklist, $sitepress ) {
    $blacklist[] = 'documentation';
    return $blacklist;
}

上述代码中,使用$blacklist阵列可为要链接到的源语言页面指定所有网址缩略名。

在我们的示例中,我们要链接到英语版的」文件」(别名」 documentation 「)和」页面生成器」(别名」 page – builders 「)页面,之后才能使用以下两行:

Example of specifying the list of URLs to allow linking to
$blacklist[] = 'documentation';

$blacklist[] = 'page-builders';