Ask your WordPress questions! Pay money and get answers fast! (more info)

Google Plus profile share not showing on post

  • REFUNDED

Hello trusted developers,

On my blog www.linguaid.net/blog, my Google Plus profile is not showing at the bottom of any post. I have shared it ok in the Settings > Sharing. I have successfully done this on other blogs (e.g. http://www.lovefrance.info/learn-how-to-speak-french/) and don't know why it's not working here.

Here is a recent test post : http://www.linguaid.net/test-post-doesnt-mean-anything

FYI, I changed the profile photo of the google plus profile as it wasn't appropriate (I had a sideways blurry profile).

Please help!

Kind regards,

Answers (3)

2014-01-04

PHPSmashCode answers:

Hello,

http://www.linguaid.net/blog is may be a category page. Others are blog posts, and the urls like http://www.lovefrance.info/learn-how-to-speak-french/ these are post's single page. Probably the plugin you are using enables Google Plus Share for single page. There might be an option/settings for enabling Google Plus Share for category. Please check the plugin setting once again.

Hariprasad.


Joss Frimond comments:

Hi Hariprasad,

No I mean't all the single posts in the blog category!

None of them have the share google profile on them.

Kind regards

Joss


PHPSmashCode comments:

Hi Joss,

For clarification,

Just need a share on the bottom of www.linguaid.net/blog or need share on each post listed on www.linguaid.net/blog

Let me know

Thanks


Joss Frimond comments:

I need a share on each post listed. Every single one.


PHPSmashCode comments:

Popular social share plugins have an option for enabling share button display location in its setting. I think there might be an option for enabling Google Plus Share for categories. Have you check settings?


Joss Frimond comments:

Hi Hariprasad,

Like I said, I'm NOT interested in sharing the category. The Google Profile is not showing on each blog post. That is what I want fixing.


PHPSmashCode comments:

It is not about sharing category, it is just enabling post share on category page

2014-01-04

Arnav Joy answers:

what is you are using to show it any plugin or any code?


Joss Frimond comments:

Hi Arnav,

It is the Jetpack plugin with the Google+ profile setting. By the way, I have WP 3.5.


Arnav Joy comments:

if you are doing it using jetpack plugin and have changed profile image then try to reconnect the jetpack from wordpress admin panel .


Joss Frimond comments:

I have disconnected and reconnected. Still nothing on: http://www.linguaid.net/test-post-doesnt-mean-anything

2014-01-04

Dbranes answers:

Did you follow these steps?:

http://jetpack.me/support/google-plus/


Joss Frimond comments:

Yes


Dbranes comments:

I think this JetPack function is responsible for displaying the Google+ Profile:


function post_output_wrapper( $text = '', $echo = false ) {
global $post, $wp_current_filter;

if ( !is_single() )
return $text;
if ( get_post_type() != 'post' )
return $text;
$author = $this->information( $post->post_author );
if ( empty( $author ) )
return $text;

// Don't allow G+ to be added to the_content more than once (prevent infinite loops)
$done = false;
foreach ( $wp_current_filter as $filter ) {
if ( 'the_content' == $filter ) {
if ( $done )
return $text;
else
$done = true;
}
}

if ( !$this->show_on_this_post())
return $text;

$output = '';
$output .= '<div class="sharedaddy sd-block sd-social sd-gplus">';
$output .= '<h3 class="sd-title">' . __( 'Google+', 'jetpack' ) . '</h3>';
$output .= '<div class="sd-content">';
$output .= $this->byline( $post );
$output .= $this->follow_button( $post );
$output .= '</div>';
$output .= '</div>';

if ( $echo )
echo $text . $output;
else
return $text . $output;
}


So it seems to allow only <em>post </em> as post-type.

Is that true in your case?


Dbranes comments:

... or maybe the post author is not in the <em>gplus_authors </em> options.

You can check it with for example:

print_r( get_option( 'gplus_authors', array() ) );

and it should have an array key matching to the <em>$post->post_author</em> number.


Joss Frimond comments:

thanks Dbranes but I don't know what to do exactly? Can you be a bit more clear in your explanation?


Dbranes comments:

So I think the <strong>Google+</strong> Profile block will only display if:


- the post-type is <em>post</em>.
- <em>is_single()</em> is true
- the post author is defined in the <em>gplus_authors</em> option,
( i.e. if you have many authors writing posts on your blog, it will only show up on your own posts).


Joss Frimond comments:

where is the gplus_authors option? Are you looking at the Linguaid site?


Dbranes comments:

Try to add this into your <em>functions.php</em> file in the current theme directory:

add_action( 'wp_footer', function(){
$msg = 'Google+ profile';
if( array_key_exists( get_post( get_the_ID() )->post_author, get_option( 'gplus_authors', array() ) ) )
$msg .= ' - The current post author id matches the G+ author!';

echo $msg;
});


It should display messages in the footer, or maybye this:

add_action( 'wp_footer', function(){
printf( '<h1>debug:</h1>
<pre>post-author-id: %d </pre>
<pre>"gplus_authors" option: %s </pre>',
get_post( get_the_ID() )->post_author,
print_r( get_option( 'gplus_authors', array() ), TRUE )
);
});


if you need more debug informations. I assume you got PHP 5.3+.


Joss Frimond comments:

sorry, neither of those work - they both add code to the blog post


Dbranes comments:

can you be more specific? what kind of code?

Then please try this PHP 5.2 compatiable code in functions.php :


add_action( 'wp_footer', 'my_debug' );

function my_debug()
{
if( is_single() )
{
printf( '<hr/>post author id is %d', $GLOBALS['post']->post_author );
printf( '<hr/>gplus_authors option is <pre>%s</pre>', print_r( get_option( 'gplus_authors', array() ), TRUE ) );
}
}


Dbranes comments:

ps: did you remember the enclosing <em><?php ?></em> part ?


Joss Frimond comments:

Hi Dbranes,

Here is the content of the functions file. Can you add in your code please? For the moment, nothing works:

<?php
//Please note that this is a Parent Theme's functions.php file,
//any code you added will be gone if you do an upgrade.
//You are advised to use a child theme and add your own custom functions to the child theme's functions.php
//check WP_DEBUG
//Some plugins such as wpcu3er will disable PHP error reporting,
//therefore we must make sure it is turn on if WP_DEBUG is set to true.
if(defined('WP_DEBUG') == 1 || WP_DEBUG == true){
$error_setting = ini_get("display_errors");
if($error_setting == '0'){
ini_set('display_errors', '1');
}
}
//Check if PHP error reporting is enabled.
//if it is enabled, we will only ALLOW PHP fatal error, syntax error, parse errors etc to show only.
$php_error_setting = ini_get("display_errors");
if($php_error_setting == '1'){
//if you wnat to know what are these constants,
//reference to http://www.php.net/manual/en/errorfunc.constants.php
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE & ~E_WARNING & ~ E_DEPRECATED & ~ E_USER_NOTICE);
}
// Required TrueThemes Framework - do not edit or theme will fail!
require_once(TEMPLATEPATH . '/truethemes_framework/truethemes_framework_init.php');
// Load translation text domain
load_theme_textdomain ('truethemes_localize');
?>
function my_debug()

{

if( is_single() )

{

printf( '<hr/>post author id is %d', $GLOBALS['post']->post_author );

printf( '<hr/>gplus_authors option is <pre>%s</pre>', print_r( get_option( 'gplus_authors', array() ), TRUE ) );

}

}


Dbranes comments:

ok, two things there:

- remove the ?> part
- copying code from this site can give you extra new lines

Here's a cleaned up version of your <em>functions.php</em> file:

[[LINK href="http://pastebin.com/yv3R93uQ"]]http://pastebin.com/yv3R93uQ[[/LINK]]


Joss Frimond comments:

Hi Dbranes,

Please see http://www.linguaid.net/test-post-doesnt-mean-anything for latest results. i copied the code for the pastebin link.

Thanks

Joss


Dbranes comments:

I constructed this fix that you can try out:

You can copy it from

[[LINK href="http://pastebin.com/AYGXPeqG"]]http://pastebin.com/AYGXPeqG[[/LINK]]


/**
* Fix for the missing GPlus Profile in JetPack
*
* @link: http://www.wpquestions.com/question/showLoggedIn/id/9130
*
*/


if( ! class_exists( 'GPlusProfileFix' ) )
{

add_action( 'init', array( 'GPlusProfileFix', 'get_instance' ) );

class GPlusProfileFix
{
static private $instance = NULL;

public function __construct()
{
add_filter( 'the_content', array( $this, 'the_content' ), 999, 1 );
}

static public function get_instance()
{
if ( NULL === self::$instance )
self::$instance = new self;

return self::$instance;
}

protected function information( $author ) {
$authors = get_option( 'gplus_authors', array() );
return ( empty( $authors[ $author ] ) ? array() : $authors[ $author ] );
}

protected function byline( $post ) {
$author = $this->information( $post->post_author );
$image = '<img src="' . esc_url( $author['profile_image'] ) . '?sz=40" alt="' . esc_attr( $author['name'] ) . '" width="20" height="20" align="absmiddle" /> ';
$byline = sprintf( '<a href="%1$s">%2$s</a><a rel="author" href="%1$s" class="gplus-profile">%3$s</a>', esc_url( $author['url'] ), $image, esc_html( $author['name'] ) );
return apply_filters( 'gplus_authorship_byline', $byline, $post );
}

protected function follow_button( $post ) {
$author = $this->information( $post->post_author );
return '<span class="g-follow-wrapper"><span class="g-follow" data-href="' . esc_url( $author['url'] ) . '" data-rel="author" data-height="15"></span></span>';
}

public function the_content( $content )
{
if( is_single() )
{
global $post;

$output = '';
$output .= '<div class="sharedaddy sd-block sd-social sd-gplus">';
$output .= '<h3 class="sd-title">' . __( 'Custom Google+', 'jetpack' ) . '</h3>';
$output .= '<div class="sd-content">';
$output .= $this->byline( $post );
$output .= $this->follow_button( $post );
$output .= '</div>';
$output .= '</div>';

$content .= $output;
}

return $content;
}
} // end class

}


Joss Frimond comments:

is this to paste over the whole functions.php page please?

Thanks


Dbranes comments:

Add this to your <em>functions.php</em> file.

(you can remove the previous debug code, it shows that the post author id matches gplus author info)


Joss Frimond comments:

Hi Dbranes,

I found out what the problem is. It is a conflict with the WMPL multi-lingual plugin. When I deactivate it, the google profile works.

The problem is, I really need the plugin as it is a bilingual site. I have changed themes but no luck.

Do you know how to resolve the conflict with an external plugin ?

Kind regards

Joss