Wordpress: Mehrere Loops auf Single.php

Czymra

Aktives Mitglied
Thread Starter
Dabei seit
11.01.2006
Beiträge
188
Reaktionspunkte
1
Hallo zusammen,

Da ich jetzt schon seit mehreren Wochen mich damit befasse ein Wordpress basiertes CMS fuer meine Firma zusammen zu stellen, habe ich nun beschlossen mein momentanes Problem hier zu posten. Andere Foren konnten leider uberhauptnicht weiterhelfen. Ich hoffe jedoch das die Exzellenz der MacUser durchgreift. ;)

Hier also meine Situation:
Ich erstelle also ein Wordpress CMS fuer meine Firma. Wir produzieren und veranstalten Konferenzen und Foren und brauchen also etwas das sehr stark wie ein Magazin aussieht. Wir haben mehrere CMS ausprobiert aber ich bin der einzige 'Entwickler' (eher Websdesigner) der daran arbeitet und habe mich daher fuer Wordpress entschieden, nicht nur weil es einfach zu bedienen ist sondern weil es auch mit den Loops einfach in ein Magazin umzuwandeln ist.
Nun habe ich es geschafft die Loops in allen Kategorien und auf der Landungsseite unter zu bringen und alles sieht soweit gut aus. Das Problem ist nun die Gestaltung meines Single.php, also einer einzelnen Konferenz selbst.

Die Konferenz soll nun also nicht nur einen Inhalt haben sondern auch einen Banner, mehrere Sponsoren und Sprecher Logos. All dies ist nun aber ausserhalb der eigentlichen Posts und muss also dynamisch angefragt werden. Eine fertige HTML version einer Konferenz koennt ihr euch hier anschauen:
http://www.symposium-events.co.uk/hr084/index.htm

Nun habe ich also folgende Methode im Auge:
Der Post mit der jeweiligen Konferenz traegt auch einen Tag mit dem Namen HR080 (oder entsprechende Nummer). Dieser wird also aus der Metadata ausgelsen und es wird eine variable angehaengt zum Beispiel "banner" somit bekomme ich also "HR080banner". Mit dieser variable kann ich nun also einen neuen Loop starten und nach dem Post mit "HR080banner" suchen und dann anzeigen.
Das mit dem auslesen und anzeigen funktioniert soweit schon ganz gut. Das Problem ist also nur ein Konflikt zwischen den verschiedenen Loops. Offensichtlich habe ich da noch nicht alle Details in mich aufgenommen und verstehe auch recht wenig von PHP, trotzdem konnte ich mit dem Codex soweit schon folgenden Code erstellen der es im Moment schafft, den HR080 tag aus dem orginial Post auszulesen, den neuen Query dann mit dem HR080banner zu finden und den zu drucken, jedoch wiederholt sich dieser Prozess bis ins unendliche (zum Glueck hat das der Server soweit noch ertragen.)

Ich waere also sehr dankbar falls ihr euch die Zeit nehmen koennt und mal schaut wo ich falsch gehe. Es scheint mir als ob das Problem ist, dass Wordpress, nachdem der neue Query eingefuegt wurde, nichtmehr zum alten Query zurueckkehrt obwohl die Anweisung da ist oder ich uebersehe etwas wo immer und immer wieder das selbe geloopt wird.

Um sicher zu gehen werde ich nun die andere Moeglichkeit die vom Codex fuer PHP5 vorgesehen ist probieren, ich denke jedoch das wir auf PHP4 sind.

Hier also meine single.php:
Code:
<?php get_header(); ?>

	<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<div class="channelcolorconftop colorhrstrategy"></div>
<div style="background-image: url('topbanner.png'); height: 150px; padding: 0; margin: 0; overflow:hidden;">
<h2 class="toptitle">
Leveraging HR Technology 2008</h2>

<!--This is the code to run  the dynamic calls to the tag. -->
<?php
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) { // foreach (=$my_tag) and a serial number? RATHER foreach ($posttags = ARRAY
}
}
?>



// going off on my own here
<?php $temp_query = $wp_query; ?>
<!-- Do stuff... -->

<?php query_posts('tag='.$tag->name.'banner'); ?>

<?php while (have_posts()) : the_post(); ?>
  <?php echo get_the_content(); ?>
<?php endwhile; ?>

// now back to our regularly scheduled programming
<?php $wp_query = $temp_query; ?>



</div>


<div class="contentwrapper">
<div class="confleftcolumn1">
<div id="tabsI">
  <ul>
    <li><a href="index.htm" title="OVERVIEW"><span>&nbsp;&nbsp;OVERVIEW&nbsp;</span></a></li>
    <li><a href="programme.htm" title="PROGRAMME"><span>&nbsp;&nbsp;&nbsp;PROGRAMME&nbsp;&nbsp;</span></a></li>
    <li><a href="speakers.htm" title="SPEAKERS"><span>&nbsp;&nbsp;&nbsp;SPEAKERS&nbsp;&nbsp;</span></a></li>
    <li><a href="sponsors.htm" title="SPONSORS"><span>&nbsp;&nbsp;&nbsp;SPONSORS&nbsp;&nbsp;</span></a></li>
    <li><a href="venue.htm" title="VENUE"><span>&nbsp;&nbsp;&nbsp;VENUE&nbsp;&nbsp;</span></a></li>
    <li><a href="booknow.htm" title="BOOK NOW!"><span>&nbsp;&nbsp;&nbsp;BOOK <B>NOW!</B>&nbsp;&nbsp;</span></a></li>
  </ul>
</div>
<div class="innertube">

		<?php while (have_posts()) : the_post(); ?>
  <?php echo get_the_content(); ?>
<?php endwhile; ?>


</div>
</div>
</div>


<div class="confrightcolumn1">
<div style="background-image: url('bottombanner.png'); padding: 0; margin: 0; width: 320px; height: 250px; overflow:hidden;"></div>
<div class="innertube">



<div class="confsection">
<div class="logos">


</div>
</div>



</div>
</div>




<div id="conffooter">
<img src="../images/expertsfromsidetitle.png">
<br>
<div class="logo"><img src="../images/logos/astrazeneca.jpg" valign="middle"></div>

<div class="logo"><img src="../images/logos/readinglight.jpg" valign="middle"></div>

<div class="logo"><img src="../images/logos/tesco.jpg" valign="middle"></div>

<div class="logo"><img src="../images/logos/cadbury.jpg" valign="middle"></div>

<div class="logo"><img src="../images/logos/Ceridian.jpg" valign="middle"></div>

<div class="logo"><img src="../images/logos/croydon.jpg" valign="middle"></div>

<div class="logo"><img src="../images/logos/delarue.jpg" valign="middle"></div>

<div class="logo"><img src="../images/logos/HCM.jpg" valign="middle"></div>

<div class="logo"><img src="../images/logos/HSBC.jpg" valign="middle"></div>

<div class="logo"><img src="../images/logos/itv.jpg" valign="middle"></div>

<div class="horspacer"></div>

<div class="channelcolorbottom colorhrstrategy">

</div>



	<?php comments_template(); ?>

	<?php endwhile; else: ?>

		<p>Sorry, no posts matched your criteria.</p>

<?php endif; ?>



<?php get_footer(); ?>
 
Zurück
Oben Unten