function sw_email_button_html($array) { if ($array['options']['email']) { // Collect the Title $title = SW_META_meta('nc_ogTitle'); if (!$title) { $title = get_the_title(); } // Collect the Description $description = SW_META_meta('nc_ogDescription'); if (!$description) { $description = sw_get_excerpt_by_id($array['postID']); } $array['resource']['email'] = '<div class="nc_tweetContainer sw_email">'; $link = urlencode(urldecode(sw_process_url($array['url'], 'email', $array['postID']))); $array['resource']['email'] .= '<a href="mailto:?subject=' . urlencode($title) . '&body=' . urlencode($description) . ' Read here: ' . $link . '" class="nc_tweet">'; $array['resource']['email'] .= '<span class="sw_count sw_hide"><span class="iconFiller"><span class="spaceManWilly"><i class="sw sw-email"></i><span class="sw_share"> ' . $array['language']['email'] . '</span></span></span></span>'; $array['resource']['email'] .= '</a>'; $array['resource']['email'] .= '</div>'; ++$array['count']; } return $array; }
function sw_add_twitter_card($info) { if (is_singular()) { // Check if Twitter Cards are Activated if ($info['sw_user_options']['sw_twitter_card']) { /***************************************************************** * * * YOAST SEO: It rocks, so let's coordinate with it * * * ******************************************************************/ // Check if Yoast Exists so we can coordinate output with their plugin accordingly if (defined('WPSEO_VERSION')) { // Collect their Social Descriptions as backups if they're not defined in ours $yoast_twitter_title = get_post_meta($info['postID'], '_yoast_wpseo_twitter-title', true); $yoast_twitter_description = get_post_meta($info['postID'], '_yoast_wpseo_twitter-description', true); $yoast_twitter_image = get_post_meta($info['postID'], '_yoast_wpseo_twitter-image', true); // Collect their SEO fields as 3rd string backups in case we need them $yoast_seo_title = get_post_meta($info['postID'], '_yoast_wpseo_title', true); $yoast_seo_description = get_post_meta($info['postID'], '_yoast_wpseo_metadesc', true); // Cancel their output if ours have been defined so we don't have two sets of tags remove_action('wpseo_head', array('WPSEO_Twitter', 'get_instance'), 40); } /***************************************************************** * * * JET PACK: If ours are activated, disable theirs * * * ******************************************************************/ if (class_exists('JetPack')) { add_filter('jetpack_disable_twitter_cards', '__return_true', 99); } /***************************************************************** * * * TWITTER TITLE * * * ******************************************************************/ // If the user defined a Social Media title, use it, otherwise check for Yoast's if (!$info['title'] && isset($yoast_twitter_title) && $yoast_twitter_title) { $info['title'] = $yoast_twitter_title; // If not title has been defined, let's check the SEO description as a 3rd string option } elseif (!$info['title'] && isset($yoast_seo_title) && $yoast_seo_title) { $info['title'] = $yoast_seo_title; // If not title has been defined, let's use the post title } elseif (!$info['title']) { $info['title'] = convert_smart_quotes(get_the_title()); } /***************************************************************** * * * TWITTER DESCRIPTION * * * ******************************************************************/ // Open Graph Description if (!$info['description'] && isset($yoast_twitter_description) && $yoast_twitter_description) { $info['description'] = $yoast_twitter_description; // If not title has been defined, let's check the SEO description as a 3rd string option } elseif (!$info['description'] && isset($yoast_seo_description) && $yoast_seo_description) { $info['description'] = $yoast_seo_description; // If not, then let's use the excerpt } elseif (!$info['description']) { $info['description'] = htmlspecialchars(sw_get_excerpt_by_id($info['postID'])); } /***************************************************************** * * * TWITTER IMAGE * * * ******************************************************************/ // Open Graph Description if (!$info['imageURL'] && isset($yoast_twitter_image) && $yoast_twitter_image) { $info['imageURL'] = $yoast_twitter_image; } else { // If nothing else is defined, let's use the post Thumbnail as long as we have the URL cached $twitter_image = get_post_meta($info['postID'], 'sw_open_thumbnail_url', true); if ($twitter_image) { $info['imageURL'] = $twitter_image; } } /***************************************************************** * * * PUT IT ALL TOGETHER * * * ******************************************************************/ // Check if we have everything we need for a large image summary card if ($info['imageURL']) { $info['header_output'] .= PHP_EOL . '<meta name="twitter:card" content="summary_large_image">'; $info['header_output'] .= PHP_EOL . '<meta name="twitter:title" content="' . $info['title'] . '">'; $info['header_output'] .= PHP_EOL . '<meta name="twitter:description" content="' . $info['description'] . '">'; $info['header_output'] .= PHP_EOL . '<meta name="twitter:image" content="' . $info['imageURL'] . '">'; if ($info['sw_user_options']['twitterID']) { $info['header_output'] .= PHP_EOL . '<meta name="twitter:site" content="@' . $info['sw_user_options']['twitterID'] . '">'; } if ($info['user_twitter_handle']) { $info['header_output'] .= PHP_EOL . '<meta name="twitter:creator" content="@' . str_replace('@', '', $info['user_twitter_handle']) . '">'; } // Otherwise create a small summary card } else { $info['header_output'] .= PHP_EOL . '<meta name="twitter:card" content="summary">'; $info['header_output'] .= PHP_EOL . '<meta name="twitter:title" content="' . str_replace('"', '\'', $info['title']) . '">'; $info['header_output'] .= PHP_EOL . '<meta name="twitter:description" content="' . str_replace('"', '\'', $info['description']) . '">'; if ($info['sw_user_options']['twitterID']) { $info['header_output'] .= PHP_EOL . '<meta name="twitter:site" content="@' . $info['sw_user_options']['twitterID'] . '">'; } if ($info['user_twitter_handle']) { $info['header_output'] .= PHP_EOL . '<meta name="twitter:creator" content="@' . str_replace('@', '', $info['user_twitter_handle']) . '">'; } } } } return $info; }