Zurück   WordPress Deutschland Forum > Support > Konfiguration

Antwort
 
Themen-Optionen Ansicht
Alt 01.10.2008, 20:32   #1 (permalink)
PostRank: 0
 
Registriert seit: 05.06.2007
Beiträge: 19
Zufallslink ausgeben

Hi Leute!
Ich möchte in meiner single.php nach der Ausgabe des Beitrages einen Link zu einem zufälligen Beitrag aus der gleichen Kategorie einblenden.

Meine single.php:
PHP-Code:
<?php get_header(); ?>
<div id="content">
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <div class="post" id="post-<?php the_ID(); ?>">
       <h5><?php the_excerpt() ; ?></h5>
  </div>  
  <?php comments_template(); ?>
  <?php endwhile; else: ?>
  <p><?php __('Sorry, no posts matched your criteria.','branfordmagazine');?></p>
  <?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer
(); ?>
Unter dem Beitrag hätte ich jetzt gern ein
<a href="irgendein-beitrag">Zufallspost</a>'
Wie stelle ich das an?

Hab schon gelernt das ich mit
PHP-Code:
<?php query_posts('orderby=rand&showposts=1&cat=3'); ?>
Zufallsartikel selektieren kann. Aber wie baue ich mir daraus einen Link?

Würd mich sehr über Hilfe freuen!

sms-producer ist offline   Mit Zitat antworten
Alt 01.10.2008, 20:44   #2 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 8.025
Der Ansatz ist schon gut.
PHP-Code:
<?php query_posts('orderby=rand&showposts=1&cat=3'); ?>
Damit bereitest du einen neuen Loop vor. Den Loop musst du dann nur noc hausführen, also so:
PHP-Code:
<?php while (have_posts()) : the_post(); ?>
  <!-- Template-Tags hier -->  
<?php endwhile;
Bei dem HTML-Kommentar kommt dann einfach der Link hin, wie im normalen Loop auch:
HTML-Code:
<a href="<?php the_permalink() ?>"><?php the_title() ?></a> 
PS: Ich würde dir empfehlen, statt query_posts() new WP_Query() zu verwenden, um den normalen Loop nicht zu beeinflussen, um Seiteneffekte zu vermeiden. Sieht dann so aus:
PHP-Code:
<?php $random = new WP_Query('orderby=rand&showposts=1&cat=3'); ?>
<?php 
while ($random->have_posts()) : $random->the_post(); ?>
Der Rest wie oben.
__________________
FAQ // Codex // WP-Stuff // marcus.zelend.de
marX ist offline   Mit Zitat antworten
Alt 01.10.2008, 21:15   #3 (permalink)
PostRank: 0
 
Registriert seit: 05.06.2007
Beiträge: 19
PERFEKT!

Genau so hatte ich mir das gedacht.

Hab's wie folgt eingebaut:
PHP-Code:
<?php get_header(); ?>
<div id="content">
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <div class="post" id="post-<?php the_ID(); ?>">
       <h5><?php the_excerpt() ; ?></h5>
        <?php $random = new WP_Query('orderby=rand&showposts=1&cat=3'); ?>
        <?php while ($random->have_posts()) : $random->the_post(); ?> 
        <a href="<?php the_permalink() ?>">noch einen Spruch</a>
        <?php endwhile;?>
  </div>  
  <?php comments_template(); ?>
  <?php endwhile; else: ?>
  <p><?php __('Sorry, no posts matched your criteria.','branfordmagazine');?></p>
  <?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer
(); ?>
Vielen vielen Dank für deine blitzschnelle Hilfe!
sms-producer ist offline   Mit Zitat antworten
Alt 02.10.2008, 21:09   #4 (permalink)
PostRank: 0
 
Registriert seit: 05.06.2007
Beiträge: 19
Verdammt, zu früh gefreut...
Wenn ich es wie gepostet zusammenbaue, bekomme ich the_excerpt vom geladenen Post, die comments sind allerdings vom dem Post, der als Zufallslink ausgegeben wird.

Ist das endwhile an der falschen stelle?
Wie schaffe ich es, das ich wieder die passenden Kommentare zu meinem geladenen Beitrag bekomme?

Was für ein durcheinander.

EDIT:
Jetzt gehts! *freu*
Hab nun die the_post-funktion durch get_posts ersetzt, damit ich dem ersten loop nicht in die quere komme. Dieser Beitrag hat mich zur Lösung geführt.

So, nun kann ich beruhigt zu bett gehen.

Geändert von sms-producer (03.10.2008 um 02:27 Uhr).
sms-producer ist offline   Mit Zitat antworten
Alt 06.10.2008, 09:19   #5 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 8.025
Jupp, das Problem ist der verschachtelte Loop, das kann ja nur schief gehen. (Eine andere Möglichkeit wäre gewesen, die alten Loop-Daten zu sichern, bevor du den inneren Loop öffnest.)
__________________
FAQ // Codex // WP-Stuff // marcus.zelend.de
marX ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 | Impressum | Ein Inpsyde.com Projekt