2010-04-28 3 views
2

나는 내 필요에 맞게 single.php를 편집했으며 작동합니다. 나는 다음과 같이 루프의 일부만 남겼습니다 :워드 프레스 사이드 바 및 루프 PHP 코드가 서로 왜곡합니다

<?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; ?> 

원하는대로 텍스트 만 표시합니다. 템플릿에 세로 막대로 사용할 다음 코드를 추가하면 문제가 발생합니다.

<?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;?> 

마지막 10 개의 게시물의 제목이 표시되어야합니다. 하지만 지금은 루프 또한 permalink에 속한 하나의 게시물 대신 최신 (full0 10 게시물을 표시합니다 ... 나는 변수가 너무 재사용되고 휴식을해야한다고 생각해 .. 참고 single.php 먼저는 '사이드 바'코드를 얻을, 다음은 '루프'코드를 얻을. 그래서

를 워드 프레스는 이런 식으로 행동하는 이유? 워드 프레스는 글로벌 변수의 악몽 미로 때문에

+0

어쩌면, 철저한 설명은 우수한 감사 – DCrystal

답변

5

이런 이유입니다. query_posts()은 최악의 범죄자 중 하나입니다.이 기능에 대해 documentation을 확인하면 기본적으로 사용하지 말라고 경고해야 할 수도 있습니다.

중요 참고

query_posts 함수는 을 사용하여 기본 페이지를 수정합니다. 루프 만. 페이지에 보조 루프를 만드는 것을 의미하지는 않습니다. 기본 외부의 루프를 별도로 만들려면 개체를 별도의 WP_Query 개체를 만들어 대신 사용해야합니다. 주 루프 이외의 루프에서 query_posts를 사용하면 기본 루프 이 올바르지 않을 수 있으며 은 이 아닌 것으로 표시됩니다.

그들은 즉 그들은 "주"페이지를 개조하지 않은 이유 WP_Query object가 (말도 안되는 제거하는 대신 지금 사용할 수있는 몇 가지 객체 지향 물건을 추가 한 "루프"물건은 아직 의문이다).

당신은 사이드 바에서 이런 일을하고 싶은거야 :

<?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;?> 

구글의 주위에 당신이 more examples을 원하는 경우 WP_Query을 사용하는 방법에 대해.

+0

사이드 바에서 query_posts 전에 rewind_posts을()() 시도! – theDoctor

1
query ('showposts = 10'); while ($ recentPosts-> have_posts()) : $ recentPosts-> the_post(); 링크 ">

는 u는 사이드 바에서 퍼팅 코드를 읽기 위해?>

"

REL = "북마크"= 제목은 "u는 지난 10 개 타이틀을 얻기 위해 노력하고있다 사이드 바에 표시 할 소식, 맞습니까?그래서 u는 그냥 줄을 사용 할 수있는 경우 :

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