Automatically add title attribute to links in WordPress

Don’t know if this works but it should,

function get_page_title($url){
        if( !class_exists( 'WP_Http' ) )
            include_once( ABSPATH . WPINC. '/class-http.php' );
        $request = new WP_Http;
        $result = $request->request( $url );
        if( is_wp_error( $result ) )
            return false;

        if( preg_match("#<title>(.+)<\/title>#iU", $result, $t))  {
            return trim($t[1]);
        } else {
            return false;
        }
    }

    add_filter('the_content','auto_add_title_to_link');

    function auto_add_title_to_link($content){
        $html = new DomDocument;
        $html->loadHTML($content); 
        $html->preserveWhiteSpace = false; 
        //get all links
        foreach($html->getElementsByTagName('a') as $link) {
        //make sure it dosent have a title
            if ($link->getAttribute('title') == '' || empty($link->getAttribute('title')))
                $links[] = $link->getAttribute('href');
        }
        //get title and add it
        foreach ($links as $link){
            $title = get_page_title($link);
            if (false !== $title){
                $replace = $link.' title="'.$title.'"';
                $content = str_replace($link,$replace,$content);
            }

        }
        return $content;
    }

Leave a Comment