diff --git a/includes/cache/LinkCache.php b/includes/cache/LinkCache.php index 7adb09e62ef..2c3ded156d6 100644 --- a/includes/cache/LinkCache.php +++ b/includes/cache/LinkCache.php @@ -155,7 +155,7 @@ class LinkCache implements LoggerAwareInterface { if ( $page instanceof PageIdentity && !$page->canExist() ) { // Non-proper page, perhaps a special page or interwiki link or relative section link. $this->logger->warning( - 'non-proper page reference', + 'non-proper page reference: {page-reference}', [ 'page-reference' => $this->titleFormatter->getFullText( $page ) ] ); return null; @@ -167,7 +167,7 @@ class LinkCache implements LoggerAwareInterface { // Interwiki link or relative section link. These do not have a page ID, so they // can neither be "good" nor "bad" in the sense of this class. $this->logger->warning( - 'link to non-proper page', + 'link to non-proper page: {page-link}', [ 'page-link' => $this->titleFormatter->getFullText( $page ) ] ); return null; diff --git a/includes/linker/LinkRenderer.php b/includes/linker/LinkRenderer.php index 76962b5f1b2..0898a0cddf4 100644 --- a/includes/linker/LinkRenderer.php +++ b/includes/linker/LinkRenderer.php @@ -424,6 +424,10 @@ class LinkRenderer { public function getLinkClasses( $target ) { Assert::parameterType( [ LinkTarget::class, PageReference::class ], $target, '$target' ); $target = $this->castToLinkTarget( $target ); + // Don't call LinkCache if the target is "non-proper" + if ( $target->isExternal() || $target->getText() === '' || $target->getNamespace() < 0 ) { + return ''; + } // Make sure the target is in the cache $id = $this->linkCache->addLinkObj( $target ); if ( $id == 0 ) {