wordpress in artikelübersicht per javascript social shares ein und ausblenden

sunfan

Grünschnabel
Hallo
Habe einen Blog in Wordpress.
Habe versucht einen Button für jeden Blogartikel zu erstellen, klickt man auf diesen werden für den jeweiligen Artikel die Social Shares angezeigt (Facebook like, Twitter und +1 google), klickt man nochmal drauf werden diese wieder ausgeblendet. Es hat auch funkioniert, in der Artikeleinzelansicht klappt dies auch wunderbar. Jedoch in der Artikelübersichtsseite nicht, dort tritt Folgendes Problem auf: egal bei welcher Artikelvorschau ich auf den Button klicke es öffnen sich immer nur die Social Shares des zu erst Aufgelisteten Artikels (des neusten Artikels). Als Beispiel:
Ich gehe in die Kategorie Allgemein, dort befinden sich nun 5 Artikel möchte ich nun Artikel 3 sharen klicke ich auf den angelegten button, die shares öffnen sich jedoch falscher weiße bei Artikel 1)

Ich verwende das theme Twenty Twelve
und habe folgendes in die conten.php unter </footer><!-- .entry-meta --> vorgenommen: http://www.jasminko.de/artikel/5/Div...avascript.html

Bei mir:
</footer><!-- .entry-meta -->

<script type="text/javascript">
function showText() {
var spoiler = document.getElementById('spoiler');
var button = document.getElementById('button');

if (spoiler.style.display == 'block') {
spoiler.style.display='none';
button.value = 'Text einblenden';
} else {

spoiler.style.display='block';
button.value = 'Text ausblenden';
}
return false;
}
</script>


<input id="button" type="button" onclick="showText();" value="Text einblenden" />


<div id="spoiler">
<div class="facebooklike">

<iframe src="http://www.facebook.com/plugins/like.php?
href=<?php echo urlencode(get_permalink($post->ID)); ?>
&amp;layout=button_coun........................... ....

CSS:
#spoiler {
display: none;
}
Könnte mir vorstellen das ich noch irgendwo die postid vergeben muss..
Ich hoffe jemand kann helfen , wäre sehr sehr dankbar!
 
Hi,

IDs müssen innerhalb eines Dokuments eindeutig sein. Sollte gegen diese Grundbedingung verstoßen werden, wird einfach immer das erste Element im Dokument verwendet, das der Bedingung genügt. In deinem Fall also immer das erste Element mit der ID spoiler.

Ich kenne deine Templates sowie die Engine nicht. Aber wie ich aus den Codeschnipsel erahnen kann, steht für jeden Blogeintrag die zugehörige ID zur Verfügung. Vielleicht kannst du diese nutzen, um die bisherigen IDs darum zu erweitern - damit sollten sie eindeutig sein. Desweiteren musst du die JavaScript-Funktion anpassen.

Ohne deine Umgebung zu kennen und somit ohne Möglichkeit es zu testen, kannst du folgendes ohne Garantie mal versuchen:
Code:
<script type="text/javascript">
function showText(button, id) {
	var spoiler = document.getElementById(id);

	if (spoiler.style.display == 'block') {
		spoiler.style.display='none';
		button.value = 'Text einblenden';
	}else{
		spoiler.style.display='block';
		button.value = 'Text ausblenden';
	}

	return false;
}
</script>


<input id="button<?php echo $post->ID; ?>" type="button" onclick="showText(this, '<?php echo $post->ID; ?>');" value="Text einblenden" />


<div id="spoiler<?php echo $post->ID; ?>" class="spoiler">
<div class="facebooklike">

<iframe src="http://www.facebook.com/plugins/like.php?
href=<?php echo urlencode(get_permalink($post->ID)); ?>
&amp;layout=button_coun........................... ....

CSS:
#spoiler,
.spoiler{
	display: none;
}
Ciao
Quaese
 
Vielen dank für deine Hilfe =)! Wie gesagt, ich arbeite mit dem ganz normalen Twenty Twelve Theme, kannst dich also hierran ohne Probleme Orientieren : http://twentytwelvedemo.wordpress.com/blog/ . Habe am Wochenende nochmal ein paar Dinge versucht, dabei natürlich auch der von dir Vorgeschlagene Code, aber es will einfach nicht funktionieren, der Fehler bleibt bestehen.
Ich denke du hast recht und irgendetwas mit den ID's geht schief. Ich muss glaube noch dem Javascript beehlen sich an der Post ID zu orientieren. Ich hoffe mir kann noch jemand helfen, bin mächtig am verzweifeln -.-..
 
Hi,

ich habe keine Wordpress-Installation, so dass ich dir nicht mehr sagen kann.

Vielleicht gibt es ja einen Link, wo die Möglichkeit besteht, das von dir beschriebene Verhalten online zu betrachten.

Ciao
Quaese
 

Neue Beiträge

Zurück