web-dev-qa-db-fra.com

Articles paginés - Boutons de médias sociaux Partager la première page URL

Les boutons de partage Facebook, Twitter et G + au format HTML5 sont actuellement insérés dans mon fichier single.php dans WordPress. Il apparaît donc sur toutes les pages de mon message.

Tout fonctionne parfaitement jusqu'à ce que j'écrive un très long article divisé en plusieurs pages en utilisant la balise nextpage.

Le problème est que si le lecteur se trouve à la page 3 et veut partager l'article, lorsqu'il clique sur le bouton de partage, il lui est demandé de partager l'URL de cette page particulière - nameofsite.com/nameofpost/3 et non du premier/page principale de l'article - http://www.nameofsite.com/nameofpost , il me reste donc de nombreux partages de publication pour différentes pages du même article! Froncement des sourcils | :-(

Y at-il de toute façon je peux surmonter cela pour tous mes messages paginés?

Je vous remercie,

James

Edit: j'ai utilisé le code HTML suivant:

<div class="post-sharing">
 <ul>
  <li class="share-title"><p>Share This Post</p></li>
  <li><div id="fb-root"></div><div class="fb-share-button" data-type="button_count"></div></li>
  <li class="share-Twitter"><a href="https://Twitter.com/share" class="Twitter-share-button">Tweet</a></li>
  <li class="share-google"><div class="g-plus" data-action="share" data-annotation="bubble"></div></li>
  <li class="share-linkedin"><script src="//platform.linkedin.com/in.js" type="text/javascript">
  lang: en_US
</script>
<script type="IN/Share" data-counter="right"></script></li>
  <li class="share-comments"><a href="<?php comments_link(); ?>"><?php comments_number('No Comments', 'One Comment', '%' );?></a>
</li>
 </ul>
</div>

J'ai ensuite entré dans le fichier .js suivant appelé nbzsocial.js:

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.Twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'Twitter-wjs');

  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/platform.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=225721797619871";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

Ce que j'ai placé dans un dossier js de mon thème enfant et mis en file d'attente dans mes fonctions PHP avec ceci:

function wpse_load_scripts() {
    wp_enqueue_script( 'nbz-social', get_stylesheet_directory_uri() . '/js/nbzsocial.js', array(), '1.0', true );
}

add_action( 'wp_enqueue_scripts', 'wpse_load_scripts' );

Merci de me revenir si vite, je n’ai pas eu de chance sur les forums WordPress et Stack Overflow!

1
James Waterhouse

Est-ce que le partage javascript est appelé avant ou après la balise de page suivante? Vraisemblablement, si c'est un shortcode, vous voulez l'insérer après la balise page suivante?

1
user43251