-
Notifications
You must be signed in to change notification settings - Fork 13
/
simple-social-sharing.php
98 lines (87 loc) · 2.88 KB
/
simple-social-sharing.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
/*
Plugin Name: Boon's Simple Social Sharing
Plugin URI: https://github.com/mattberridge/Simple-Social-Sharing-Buttons
Description: Super lightweight social sharing buttons (without counters)
Author: built by Boon
Author URI: http://builtbyboon.com
*/
function simple_social_sharing( $attr_twitter = null, $attr_items = null ) {
// parse variables
$twitter_account = $attr_twitter;
$item_toggles = $attr_items;
// get post content and urlencode it
global $post;
$browser_title_encoded = urlencode( trim( wp_title( '', false, 'right' ) ) );
$page_title_encoded = urlencode( get_the_title() );
$page_url_encoded = urlencode( get_permalink($post->ID) );
// create share items array
$share_items = array ();
// set each item
$item_facebook = array(
"class" => "facebook",
"href" => "http://www.facebook.com/sharer.php?u={$page_url_encoded}&t={$browser_title_encoded}",
"text" => "Share on Facebook"
);
$item_twitter = array(
"class" => "twitter",
"href" => "http://twitter.com/share?text={$page_title_encoded}&url={$page_url_encoded}&via={$twitter_account}",
"text" => "Share on Twitter"
);
$item_google = array(
"class" => "google",
"href" => "http://plus.google.com/share?url={$page_url_encoded}",
"text" => "Share on Google+"
);
// test whether to display each item
if($item_toggles) {
// explode into array
$item_toggles_array = explode( ",", $item_toggles );
// set each item on or off
$show_facebook = $item_toggles_array['0'];
$show_twitter = $item_toggles_array['1'];
$show_google = $item_toggles_array['2'];
}
else {
$display_all_items = 1;
}
// form array of items set to 1
if( $show_facebook==1 || $display_all_items ) {
array_push( $share_items, $item_facebook );
}
if( $show_twitter==1 || $display_all_items) {
array_push( $share_items, $item_twitter );
}
if( $show_google==1 || $display_all_items) {
array_push( $share_items, $item_google );
}
// if one or more items
if ( ! empty( $share_items ) ) {
// create output
$share_output = "<ul class=\"ss-share\">\n";
foreach ( $share_items as $share_item ) {
$share_output .= "<li class=\"ss-share-item\">\n";
$share_output .= "<a class=\"ss-share-link ico-{$share_item['class']}\" href=\"{$share_item["href"]}\" rel=\"nofollow\" target=\"_blank\">{$share_item['text']}</a>\n";
$share_output .= "</li>\n";
}
$share_output .= "</ul>";
// echo output
echo $share_output;
}
}
// add shortcode to output buttons
function simple_social_sharing_shortcode( $atts, $content = null ) {
// parse variables / set defaults
extract( shortcode_atts( array(
'twitter' => '',
'display' => '1,1,1',
), $atts ) );
// output buttons
ob_start();
simple_social_sharing( $twitter, $display );
$output_string = ob_get_contents();
ob_end_clean();
return force_balance_tags( $output_string );
}
add_shortcode( 'simple-social-sharing', 'simple_social_sharing_shortcode' );
?>