11  5

Dans ce tutoriel, nous allons voir comment montrer dans un site web le nombre de partages d’une page ou post WordPress sur Facebook. La première des idées, c’est d’aller créer une nouvelle API dans Facebook developpers.

Une fois votre API créée en quelques secondes allez dans le menu de gauche, paramètres – Général et ici vous allez retrouver l’ID de votre application et la clé secrète. Vous allez pouvoir aussi remplir certaines informations comme le site web autorisé à cette application et d’autres informations si nécessaire.

Ensuite une fois ceci, fait, nous allons mettre une fonction qui va permettre par l’API de faire le compte du nombre de partages Facebook du post id WordPress. Pour ce nous ouvrons notre functions.php et mettons ce code-ci :

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
/**
 * Display number of shares using WordPress HTTP API
 *
 * @param integer $post_id We want to get number of shares of the post with this ID
 */
function wp_get_shares_facebook( $post_id ) {
	$cache_key = 'toni_share' . $post_id;
	$access_token = 'APP_ID|APP_SECRET';
	$count = get_transient( $cache_key ); // try to get value from Wordpress cache
 
	// if no value in the cache
	if ( $count === false ) {
		$response = wp_remote_get( add_query_arg( array( 
			'id' => urlencode( get_permalink( $post_id ) ),
			'access_token' => $access_token,
			'fields' => 'engagement'
		), 'https://graph.facebook.com/v3.0/' ) );
		$body = json_decode( $response['body'] );
		//print_r($body);
 
		$count = intval( $body->engagement->share_count ); 
 
		set_transient( $cache_key, $count, 3600 ); // store value in cache for a 1 hour
	}
	return $count;
}

Dans la ligne $access_token = ‘APP_ID|APP_SECRET’, nous allons remplacer APP_ID par l’ID de l’API, puis APP_SECRET par sa clé secrète.

Puis une fois votre fonction prête, nous allons faire un display du résultat dans l’endroit du template désiré comme ceci :
Comme vous voyez, il faut surtout appellé le Post current ID concerné pour que le compte de partages corresponde bien au ID.

1
<!--?php $id = get_the_ID(); echo wp_get_shares_facebook( $id ); ?-->

Leave a Reply