What is the best method to retrieve the title tag of an external page using the http api?
The snippet below will get the body but I can’t find the right documentation about how to just get the tag. :/
$url="http://wordpres.org";
$response = wp_remote_get( $url );
if( is_wp_error( $response ) ) {
echo 'Something went wrong!';
} else {
print wp_remote_retrieve_body( $response );
}
Edit: This code snippet gets both the screenshot
and title of an external page (Thanks again @Bainternet). With a
little editing this could be an easy
way to display the link post format.
<?php
$content = get_the_content();
$url = strip_tags($content); //assumes only a url is in the_content
$width="150";
$cleanurl = urlencode(clean_url($url));
$fullurl="http://s.wordpress.com/mshots/v1/" . $cleanurl . '?w=' . $width;
// return title tag of an external page
// http://wordpress.stackexchange.com/questions/19424/how-to-get-title-tag-of-an-external-page-with-http-api
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['body'], $t)) {
return trim($t[1]);
} else {
return false; }
}
$title = get_page_title($url);
echo '<div class="grid_4 alpha"><a href="' . $url . '"><img src="' . $fullurl . '" width="' . $width .'px" /></a></div>';
echo '<div class="grid_10 omega"><h3>'; if ($title !== false){ echo $title;} echo '</h3><p>' . $content . '</p></div>';
echo '<div class="clear"></div>';
?>