使用-Add_Filter(‘the_content’,‘make_clickable’)在新选项卡中打开链接;

时间:2017-02-08 作者:anandmongol

功能中的以下代码。php,非常适合制作可点击的链接,

add_filter( \'the_content\', \'make_clickable\',    12 );
但是我可以在新选项卡中打开链接吗?

1 个回复
最合适的回答,由SO网友:Ismail 整理而成

我不确定是否有用于此的本机函数,但一点正则表达式可能会有所帮助:

function open_links_in_new_tab($content){
    $pattern = \'/<a(.*?)?href=[\\\'"]?[\\\'"]?(.*?)?>/i\';

    $content = preg_replace_callback($pattern, function($m){
        $tpl = array_shift($m);
        $hrf = isset($m[1]) ? $m[1] : null;

        if ( preg_match(\'/target=[\\\'"]?(.*?)[\\\'"]?/i\', $tpl) ) {
            return $tpl;
        }

        if ( trim($hrf) && 0 === strpos($hrf, \'#\') ) {
            return $tpl; // anchor links
        }

        return preg_replace_callback(\'/href=/i\', function($m2){
            return sprintf(\'target="_blank" %s\', array_shift($m2));
        }, $tpl);

    }, $content);

    return $content;
}

add_filter(\'the_content\', \'open_links_in_new_tab\', 999);
这些模式可能需要一些改进。希望有帮助!

相关推荐

Problem in functions.php file

我正在尝试使用functions.php. 以下是我迄今为止所做的工作: <?php function blogroom() { wp_enqueue_style(\'bootstrap\', get_stylesheet_directory_uri() . \'/assets/lib/bootstrap/dist/css/bootstrap.min.css\'); wp_enqueue_style(\'loade