В WordPress 3.7 была представлена новая функция под названием wp_extract_urls(). Эта очень полезная функция позволяет нам извлекать ссылки из текстовых строк. Просто передаем текстовую строку функции, а та, в свою очередь, возвращает нам массив из ссылок.
Функцию wp_extract_urls() только недавно добавили в Кодекс и немного документировали, ознакомиться можно по ссылке Function Reference/wp extract urls « WordPress Codex.
Исходник функции выглядит вот так:
function wp_extract_urls( $content ) { preg_match_all( "#((?:[\w-]+://?|[\w\d]+[.])[^\s()<>]+[.](?:\([\w\d]+\)|(?:[^`!()\[\]{};:'\".,<>?«»“”‘’\s]|(?:[:]\d+)?/?)+))#", $content, $post_links ); $post_links = array_unique( array_map( 'html_entity_decode', $post_links[0] ) ); return array_values( $post_links ); }
А вот небольшой пример ее использования:
$string = 'Risus porttitor aliquet nec mid augue penatibus? Pellentesque, vel scelerisque sociis ridiculus porta elementum platea! Platea dictumst vel risus? Vel etiam? Tincidunt, pid porttitor penatibus amet porta nec odio diam, massa et tempor. Ultricies ultricies cras, sociis urna nec mid ac est augue dignissim? Odio, aliquet nec sed sit lacus, lundium risus pellentesque velit velit penatibus, duis magna, sed auctor. Scelerisque purus odio tempor rhoncus amet velit parturient turpis, pid, sagittis, eu? Vel et nascetur placerat habitasse adipiscing augue penatibus, sed natoque habitasse. Amet, dolor phasellus pulvinar vel dictumst porttitor, eu tincidunt porttitor pulvinar? Urna. http://google.com is a cool site. Porttitor, magna elementum quis lundium et platea? Rhoncus enim? Diam! Ultrices? Integer rhoncus eros, mus ridiculus eu enim porta magna mauris. Nec, in eu dictumst.'; $urls = wp_extract_urls( $string ); // вернет массив вроде этого: // array( 0 => 'http://google.com' )