wordpress sidebar ve döngü php kod birbirini bozan

2 Cevap php

Ben benim ihtiyaçlarına uygun Single.php düzenlenmiş ettik ve çalışır. Sadece aşağıdaki gibidir ki içinde döngünün parçası sol:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <div class="entry">
        <?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>
        <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>     </div>
    </div>
<?php endwhile; else: ?>

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

<?php endif; ?>

It only displayes the text, like I want it to. The problem I get is when I add the following code to be used as the sidebar in the template;

<?php query_posts('showposts=10'); ?>
 <?php while (have_posts()) : the_post(); ?> 
<a href="<?php the_permalink() ?>" rel="bookmark" title="Link to <?php the_title(); ?>">
<?php the_title(); ?></a><br /> 
<?php endwhile;?> 

Bu son 10 mesaj başlığını göstermesi gerekir. Ama şimdi döngü yerine de permalink ait sadece tek bir yazının (full0 10 mesaj son görüntülüyor ... Ben bir değişken ya da böylece yeniden ve dinlenme gerekir ediliyor .. single.php de unutmayın düşünüyorum İlk sen 'kenar çubuğu' kodunu almak ve sonra 'loop' kod olsun.

Peki neden bu şekilde davrandığını wordpress?

2 Cevap

Wordpress global değişkenler bir kabus labirent çünkü bu olur nedenidir. query_posts() kötü suçlular biridir. Bu fonksiyon için documentation kontrol ederseniz, onlar bile temelde kullanmak değil uyarmak zorunda olduğunu görürsünüz:

Önemli not

The query_posts function is intended to be used to modify the main page Loop only. It is not intended as a means to create secondary Loops on the page. If you want to create separate Loops outside of the main one, you should create separate WP_Query objects and use those instead. Use of query_posts on Loops other than the main one can result in your main Loop becoming incorrect and possibly displaying things that you were not expecting.

Onlar henüz saçma "Döngü" şeyler kurtulmak için hemen yerine, yani WP_Query object (onlar yenilenen değil neden "ana" sayfalarını kullanabilirsiniz bazı nesne yönelimli şeyler ekledik sorgulanabilir .)

Siz kenar çubuğunda böyle bir şey yapmak istiyorum gidiyoruz:

<?php
$recentPosts = new WP_Query();
$recentPosts->query('showposts=10');
while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>

<a href="<?php the_permalink() ?>" rel="bookmark"
    title="Link to <?php the_title(); ?>">
<?php the_title(); ?></a><br /> 
<?php endwhile;?> 

Google etrafında isterseniz WP_Query nasıl kullanılacağı hakkında more examples.

$ RecentPosts-> sorgu ('showPosts = 10');

while ($ recentPosts-> have_posts ()):

$ RecentPosts-> the_post (); >

"

/>

u kenar çubuğu koyarak kodu okuma, u sağ kenar çubuğu göstermek için mesaj son 10 başlıkları almak için çalışıyoruz? u sadece bu satırı kullanabilirsiniz eğer:

`<?php wp_get_archives('title_li=&type=postbypost&limit=10'); ?>