Idag har jag färdigställt en liten funktion för att få snygga externa länkar på en WordPress-hemsida eller blogg. Funktionen kollar alla länkar i content, eller den sträng man väljer att hook:a med add_filter, ifall det är en intern eller extern länk. Den gör också en koll ifall samma länk finns i innehållet, så att det inte blir flerutskrift av markeringen i strängen. Se resultatet här: WordPress.org
/** * Find and mark external links * Copyright Jon Täng <contact@jontang.se> * * @param string $content * @retrun string $content */ function find_external_links( $content ) { $xml = new DOMDocument(); $xml->loadHTML($content); $elements = $xml->getElementsByTagName('a'); $i = 0; while ( $i < $elements->length ) { $element = $elements->item($i); $url_home = parse_url( home_url(), PHP_URL_HOST ); $url_host = parse_url( $element->attributes->item(0)->value, PHP_URL_HOST ); $anchor_text = utf8_decode($element->textContent); if ( $url_host !== $url_home ) { if ( strpos( $content, $anchor_text .' ' ) === false) $content = str_replace( $anchor_text.'', $anchor_text.' ', $content ); } $i++; } return $content; } add_filter( 'the_content', 'find_external_links' );
Denna kod lägger till ett element med en Font Awesome-ikon. Vill du lägga till något annat efter den externa länken byter du bara ut <i class="fa fa-external-link"></i> mot ett bildelement eller liknande.
Prova gärna koden och kom med feedback. Klistra bara in den i din functions.php-fil. Om du använder dig av koden ska du länka tillbaka till denna hemsida (jontang.se) med ett erkännande.
EDIT: Koden har fått en liten uppdatering för att klara länktexter med å-ä-ö.
Jag är Marketing Specialist / Webbutvecklare på Bozzanova Reklambyrå i Vänersborg. Digital Marknadsföring, Sökmotoroptimering, Google Ads, Social Ads, WordPress och Webbutveckling är min vardag.