Support » Plugins and Hacks » Fix to get sociable icons working for custom post types.

Fix to get sociable icons working for custom post types.

  • I am trying to use Sociable on a WP based shopping cart run using the “The Cart Press” plugin, and out of the box the sociable icons would not be added to the product pages, which are really a custom post type created by the cart press plugin.

    Adding the following code replacing line 612 of includes/sociable_output.php seems to have fixed the problem.

    $types = get_post_types( $args, 'names' , 'and');
    $types[] = "post";
    if( is_single() && in_array(get_post_type(), $types)){

    It would be great if this functionality could be built into the plugin for future users, or possibly made into an option (eg “display on these post types”).

    Hopefully this will help someone, in looking for a solution I saw at least one other person with this same problem.


Viewing 6 replies - 1 through 6 (of 6 total)
  • Great undergroundwebdesigns!
    I’m going to try it. I tell you something soon…

    Perfect for me. Thanks undergroundwebdesigns!
    The custom post type now are showing the social icons…but not the archive page where them are listed.

    I try to fix it remplacing line 636 of includes/sociable_output.php from

    } elseif( strpos( $location , 'is_posttype_archive_' ) === 0 ){
                //Custom Post Type Archive
                $post_type = str_replace( 'is_posttype_archive_' ,  '' , $location );
                if( is_post_type_archive( $post_type ) ){


    } elseif( $location == 'is_archive' ){
    //Custom Post Type Archive
    $types = get_post_types( $args, 'names' , 'and');
    $types[] = "post";
    if( is_archive() && in_array(get_post_type(), $types)){

    but donĀ“t works. Any idea?

    It’s a good idea if the funcionality of undergroundwebdesign could be built into the plugin for future users.

    Hi all,

    I know this is an old post but I added the code to line 612 of social_output.php and it didn’t work. Could you paste the entire function block in. I’d like to see where I went wrong.


    I added it too, NOTHING seems to work with this plugin and custom post and custom pages.

    Hello everyone. Sorry for the delayed response. I’m not actually working on the site where this was an issue anymore, so I don’t have a good test-case for the updated version of Sociable. That said, looking at their code it looks like they just moved some things around, try replacing the IF at line 643 with my original fix and see how that works. Fixed function would would look like this:

    //If We Can Verify That We are in the correct loaction, simply add something to the $display array, and test for a true result to continue.
    foreach( $locations as $location => $val ){
        //First We Handle is_single() so it returning true on Single Post Type Pages is not an issue, this is not the intended functionality of this plugin
        if( $location == 'is_single' ){
            //If we are not in a post, lets ignore this one for now
            $types = get_post_types( $args, 'names' , 'and');
            $types[] = "post";
            if( is_single() && in_array(get_post_type(), $types)){ //  <-- Line 643 here!
                $display = true;
            } else {
                continue; // So not to trigger is_single later in this loop, but still be allowed to handle others
        } elseif( strpos( $location , 'is_single_posttype_' ) === 0 ){ //Now We Need To Check For The Variable Names, Taxonomy Archives, Post Type Archives and Single Custom Post Types.
            //Single Custom Post Type
            $post_type = str_replace( 'is_single_posttype_' ,  '' , $location );
            if( is_single() && get_post_type() == $post_type ){
                $display = true;

    Trying it now.. will report back.

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Fix to get sociable icons working for custom post types.’ is closed to new replies.