在看文章之前请确定你已明确标题意思:是评论内容里的超链接,而非评论者的网站链接。

自上次解决了《两个遗留问题》之一的《win主机下代码配置wordpress的SMTP邮件发送》后,本问题迟迟得不到解决(不用编辑器、不用a标签),最后不了了之,索性屏蔽了评论内容里的链接的超链转换。而就在刚才,这个问题终于得到解决。

找到 wp-includes\formatting.php

搜索 function _make_url_clickable_cb

会看到以下代码:



  1. function _make_url_clickable_cb($matches) {   

  2.     $url = $matches[2];   

  3.   

  4.     if ( ')' == $matches[3] && strpos( $url, '(' ) ) {   

  5.         // If the trailing character is a closing parethesis, and the URL has an opening parenthesis in it, add the closing parenthesis to the URL.   

  6.         // Then we can let the parenthesis balancer do its thing below.   

  7.         $url .= $matches[3];   

  8.         $suffix = '';   

  9.     } else {   

  10.         $suffix = $matches[3];   

  11.     }   

  12.   

  13.     // Include parentheses in the URL only if paired   

  14.     while ( substr_count( $url, '(' ) < substr_count( $url, ')' ) ) {   

  15.         $suffix = strrchr( $url, ')' ) . $suffix;   

  16.         $url = substr( $url, 0, strrpos( $url, ')' ) );   

  17.     }   

  18.   

  19.     $url = esc_url($url);   

  20.     if ( emptyempty($url) )   

  21.         return $matches[0];   

  22.   

  23.     return $matches[1] . "<a href=\"$url\" rel=\"nofollow\">$url</a> " . $suffix;   

  24. }   



 

然后修改其中:



  1. return $matches[1] . "<a href=\"$url\" rel=\"nofollow\">$url</a> " . $suffix;  



 

修改为:



  1. return $matches[1] . "<a href=\"$url\" rel=\"nofollow\" target=\"_blank\">$url</a> " . $suffix;  



这样,评论内容中的超链接就能在新窗口打开了。


最后修改:2019 年 06 月 06 日
如果觉得我的文章对你有用,请随意赞赏