Sonraki seti, vb tekrar aynı döngü çalışan Ardından, Wordpress Mesajlar Set sayısı ile Döngü

3 Cevap php

Ben baktım ve baktım ve ben arıyordum ne bir cevap bulmaya çalıştım, ama bu bir cevap görmek için henüz var:

Ben tek bir kategorideki tüm mesajları alır ve içeride bir süre <li></li> etiketleri onları üç görüntüleyen Wordpress döngü oluşturmak için çalışıyorum.

Çıktı bu gibi görünmelidir:

<li>My post title | Another Title | Third title</li>
<li>The next post title | A different post | Post #6</li>
<li>And so on | And so forth</li>

Bitmiş, ve sonra döngü çıkana kadar ben kategorideki tüm girişleri döngü için bu gerekiyor.

Benim kod tamamen bu noktada sigara çalışıyor, ama ben aşağıda çalışıyorum ne sağladık. Herkes bu herhangi bir çözüm varsa, ben bu kadar herhangi bir çözüm olmadan üç gün boyunca beni hounded gibi, size deli sahne vermek isterim.

<?php // Loop through posts three at a time
$recoffsetinit = '0';
$recoffset = '3';
query_posts('cat=1&showposts=0');
$post = get_posts('category=1&numberposts=3&offset='.$recoffsetinit.');
while (have_posts()) : the_post(); 
?>
<li>
<?php
$postslist = get_posts('cat=1&order=ASC&orderby=title');
foreach ($postslist as $post) : setup_postdata($post);
 static $count = 0; if ($count == "3") { break; } else { ?>
 <a href="<?php the_permalink() ?>"></a>
<?php $count++; } ?>
<?php endforeach; ?>
<?php $recoffsetinit = $recoffset + $recoffsetinit; ?>
</li>
<?php endwhile; ?>

3 Cevap

Ile test etmek için hiçbir wordpress, ve hiçbir zaman, ama bu böyle bir şey bu konuda giderek daha iyi bir yolu olabilir?

<?php

$postList = get_posts('cat=1&order=ASC&orderby=title');
$postsPerLine = 3;

echo "<ul>";
echo buildPosts($postList, $postsPerLine);
echo "</ul>";

function buildPosts($list, $perLine) {

    $out = '';
    $currentPostNumber = 0;

    foreach ($list as $post) {

    	if ($currentPostNumber == 0) {
    		$out .= '<li>';
    	}

    	$out .= "<a href='" . the_permalink() . "'></a> ";

    	$currentPostNumber++;

    	if ($currentPostNumber <= $perLine) { 
    		$currentPostNumber = 0;
    		$out .= '</li>';
    	}

    }
    return $out;
}

?>

Ben o iş yapmak için çözüm kadar kesmek. Benim kod-fu arayacağını ne değildir, çünkü biraz yapıyor aldı "iyi." Buradan bir çözüm var:

<ul>
<?php
query_posts('category=1&showposts=0');
$posts = get_posts('category_name=my_cat&order=ASC&orderby=title&numberposts=0'); 
$postsPerLine = 3;
$currentPostNumber = 0;

foreach ($posts as $post) :

    if ($currentPostNumber == 0) {
            echo '<li>';
    }
			?>

    <a href="<?php the_permalink(); ?>"></a>

    <?php
$currentPostNumber++;

    if ($currentPostNumber >= $postsPerLine) { 
            $currentPostNumber = 0;
            echo '</li>';
    }

  endforeach;
  ?>
</ul>

Girişi için teşekkürler!

Sadece bundan sonra yineleme, bir kerede, bir kategori için tüm mesajları dolanabilir. Her yazılan bir bağlantı oluşturma, ayırıcı atmak ve her üçüncü yazı üzerine yeni bir <li> başlangıç

<ul>
<?php
global $post;
$postsPerLine = 3;
$counter = 0;
$myposts = get_posts('category=1&orderby=title&order=ASC');

foreach($myposts as $post) :
    echo (++$counter % postsPerLine) ? : '<li>';
?>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
    echo ($counter % postsPerLine) ? ' | ' : '</li>';
endforeach;

?>
</ul>