WordPress.org

Ready to get started?Download WordPress

Forums

Sociable
Fix to get sociable icons working for custom post types. (7 posts)

  1. undergroundwebdesigns
    Member
    Posted 1 year ago #

    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.

    http://wordpress.org/extend/plugins/sociable/

  2. Ricardo Prieto
    Member
    Posted 1 year ago #

    Great undergroundwebdesigns!
    I'm going to try it. I tell you something soon...

  3. Ricardo Prieto
    Member
    Posted 1 year ago #

    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 ) ){

    to

    } 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.

  4. codedbyryan
    Member
    Posted 1 year ago #

    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.

    Thanks,
    Ryan

  5. bernardberry646
    Member
    Posted 1 year ago #

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

  6. undergroundwebdesigns
    Member
    Posted 1 year ago #

    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;
    
                break;
    
            } 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;
    
                break;
    
            }
            ....
  7. bernardberry646
    Member
    Posted 1 year ago #

    Trying it now.. will report back.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic