([^<]+?)<\/div>/is', '$1', $content );
$pat_sub = preg_quote( '-._~%:/?#[]@!$&\'()*+,;=', '/' );
/* $pat = '/^(
)?()?(https?:\/\/[0-9a-z' . $pat_sub . ']+)(<\/a>)?(<\/p>)?/im'; */
// pタグの中のURL
$content = preg_replace_callback(
'/^(https?:\/\/[0-9a-z' . $pat_sub . ']+)<\/p>/im',
__NAMESPACE__ . '\url_matches_callback',
$content
);
// embedブロックの中のURL
$content = preg_replace_callback(
'/
[\n\s]*(https?:\/\/[0-9a-z' . $pat_sub . ']+)[\n\s]*<\/div>/im',
__NAMESPACE__ . '\url_matches_callback',
$content
);
return $content;
}
function url_matches_callback( $matches ) {
$url = wp_strip_all_tags( $matches[1] );
if ( strpos( $url, 'instagram.com' ) !== false ) return $url;
if ( strpos( $url, 'facebook.com' ) !== false ) return $url;
if ( strpos( $url, 'twitter.com' ) !== false ) return $url;
if ( strpos( $url, 'youtube.com' ) !== false ) return $url;
$post_id = url_to_postid( $url );
if ( $post_id ) {
// 内部リンク
return SWELL::get_internal_blog_card( $post_id );
} else {
// 外部リンク
return SWELL::get_external_blog_card( $url );
}
return $url;
}