ID, ARRAY_A ); //Title $og_title = lacands_prepare_text($post_data['post_title']); //Link $og_link = get_permalink($posts[0]->ID); //Image Link $og_link_image = lacands_thumbnail_link($posts[0]->ID, $post_data['post_content']); //Content if(!empty($post_data['post_excerpt'])) { $og_desc = $post_data['post_excerpt']; } else { $og_desc = $post_data['post_content']; } $og_desc = lacands_prepare_text($og_desc); //Type $og_type = 'article'; } else { //Title $og_title = lacands_prepare_text($og_site_name); //Link $og_link = get_bloginfo('url'); //Image Link $og_link_image = ''; //Desc $og_desc = get_bloginfo('description'); $og_desc = lacands_prepare_text($og_desc); //Type $og_type = "blog"; } //Locale $og_locale = get_option('lacands-html-widget-fb-like-lang'); //FB App id $og_fb_app_id = get_option('lacands-html-fb-app-id'); //Show tags $lacands_opt_fb_metatags = get_option('lacands-html-fb-metatags', 1); $lacands_opt_googleplus_metatags = get_option('lacands-html-googleplus-metatags', 1); if($lacands_opt_fb_metatags) { lacands_build_meta_facebook($og_site_name, $og_title, $og_link, $og_link_image, $og_desc, $og_type, $og_locale, $og_fb_app_id); } if($lacands_opt_googleplus_metatags) { lacands_build_meta_googleplus($og_title, $og_link_image, $og_desc, $og_type); } return; } function lacands_build_meta_facebook($og_site_name, $og_title, $og_link, $og_link_image, $og_desc, $og_type, $og_locale, $og_fb_app_id) { if($og_site_name) { $opengraph_meta = "\n"; } if($og_title) { $opengraph_meta .= "\n"; } if($og_link) { $opengraph_meta .= "\n"; } if($og_link_image) { $opengraph_meta .= "\n"; } if($og_desc) { $opengraph_meta .= "\n"; } if($og_type) { $opengraph_meta .= "\n"; } if($og_locale) { $opengraph_meta .= "\n"; } if($og_fb_app_id) { $opengraph_meta .= "\n"; } echo "\n" . $opengraph_meta . "\n\n"; } function lacands_build_meta_googleplus($og_title, $og_link_image, $og_desc, $og_type) { if($og_title) { $opengraph_meta = "\n"; } if($og_link_image) { $opengraph_meta .= "\n"; } if($og_desc) { $opengraph_meta .= "\n"; } echo "\n" . $opengraph_meta . "\n\n"; } function lacands_html_schema($attr) { $lacands_opt_fb_metatags = get_option('lacands-html-fb-metatags', 1); $lacands_opt_googleplus_metatags = get_option('lacands-html-googleplus-metatags', 1); if($lacands_opt_fb_metatags) { $attr .= " xmlns:og=\"http://opengraphprotocol.org/schema/\""; $attr .= " xmlns:fb=\"http://www.facebook.com/2008/fbml\""; //$attr .= " xmlns:fb=\"http://ogp.me/ns/fb#\">"; } if($lacands_opt_googleplus_metatags) { $lacands_opt_googleplus_page_type = get_option('lacands-html-googleplus-page-type'); if(!$lacands_opt_googleplus_page_type) { $lacands_opt_googleplus_page_type = 'Article'; } $attr .= " itemscope itemtype=\"http://schema.org/".$lacands_opt_googleplus_page_type."\""; } return $attr; } function lacands_prepare_text($text) { $text = stripslashes($text); $text = strip_tags($text); $text = preg_replace("/\[.*?\]/", '', $text); $text = preg_replace('/([\n \t\r]+)/', ' ', $text); $text = preg_replace('/( +)/', ' ', $text); $text = preg_replace('/\s\s+/', ' ', $text); $text = lacands_prepare_string($text, 310); $text = lacands_smart_truncate($text, 300); $text = trim($text); $text = htmlspecialchars($text); return $text; } function lacands_smart_truncate($string, $required_length) { $parts = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE); $parts_count = count($parts); $length = 0; $last_part = 0; for (; $last_part < $parts_count; ++$last_part) { $length += strlen($parts[$last_part]); if ($length > $required_length) {break;} } return implode(array_slice($parts, 0, $last_part)); } function lacands_prepare_string($string, $string_length) { $final_string=''; $utf8marker=chr(128); $count=0; while(isset($string{$count})){ if($string{$count}>=$utf8marker) { $parsechar=substr($string,$count,2); $count+=2; } else { $parsechar=$string{$count}; $count++; } if($count > $string_length) { return $final_string; } $final_string=$final_string.$parsechar; } return $final_string; } function lacands_thumbnail_link($post_id, $post_content) { if(function_exists('get_post_thumbnail_id') and function_exists('wp_get_attachment_image_src')) { $src = wp_get_attachment_image_src(get_post_thumbnail_id($post_id), 'medium'); if($src) { $src = $src[0]; return $src; } } if(!$post_content) { return False; } if(class_exists("DOMDocument") and function_exists('simplexml_import_dom')) { libxml_use_internal_errors(true); $doc = new DOMDocument(); if(!($doc->loadHTML($post_content))){ return False; } try { $xml = @simplexml_import_dom($doc); if($xml) { $images = $xml->xpath('//img'); if(!empty($images)) { return $images[0]['src']; } } else { return False; } } catch (Exception $e) { return False; } } return False; } ?>