Jump to content

Make links open in new window


Jennifer2010

Recommended Posts

Hi everyone!

 

I'm using a small PHP plugin for WordPress for social sharing. The problem is, the links open up in a new tab instead of a new, small pop-up window. 

 

Here's the Facebook code example for the pop-out I'm desiring:

<a href="#" 
  onclick="
    window.open(
      'https://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(location.href), 
      'facebook-share-dialog', 
      'width=626,height=436'); 
    return false;">
  Share On Facebook
</a>

And here is the plugin code:

<?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" => "Twitter"
);
$item_google = array(
"class" => "google",
"href" => "http://plus.google.com/share?url={$page_url_encoded}",
"text" => "G+"
);


// 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' );


?>

Any help is greatly appreciated -- I've been trying for a week to figure this out!

 

Thank you!

Link to comment
Share on other sites

Try using JavaScript for that :)

 

jQuery (a JavaScript framework) has some excellent modal dialog box support.

 

Edit: to the moderators, I excuse for the double post :/

My mobile made itself self-concious and posted twice :P (no, I had to reset my connection and my mobile resent the data)

Edited by Irate
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.