2014-08-28 2 views
0

나는이 코드를 사용하여 smashingmagazine 사이트에서 발견 된 짧은 코드가있는 최근 게시물을 표시하고 있습니다. 올바른 방법으로 작동하지 않습니다. 즉, 표시 할 게시물 수를 지정하면 지정한 모든 숫자가 포함 된 게시물 하나가 표시됩니다.Wordpress shortcode의 게시물 개수가 잘못되었습니다.

여기에 코드입니다 : 나는 showposts 번호를 변경 한

function recent_posts_function() { 
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => 1)); 
    if (have_posts()) : 
    while (have_posts()) : the_post(); 
     $return_string = '<a href="'.get_permalink().'">'.get_the_title().'</a>'; 
    endwhile; 
    endif; 
wp_reset_query(); 
return $return_string; 
} 

function register_shortcodes(){ 
    add_shortcode('recent-posts', 'recent_posts_function'); 
} 

add_action('init', 'register_shortcodes'); 

, 그러나 아무 일도 발생하지 않습니다. 뭐가 문제 야?

제안 사항?

+0

$ return_string이 끝났기 때문에 마지막 행의 결과 만 가져옵니다. '$ return_string. ='으로 변경하여 연속적으로 문자열을 연결하여 긴 링크 목록을 생성하십시오. – Ohgodwhy

+0

좋아, 그 부분을 수정하지만 지금은 게시물의 번호가 여전히 'showposts'=> 1을 넣을 때 잘못되었습니다. 2 개를 넣으면 6 개 게시물을 표시하고 7 개 게시물을 표시하고 3 개를 넣으면 8 개 게시물을 표시합니다 !! ! 여기서 뭐하는거야? – Komeyl94

답변

0

시작하기 바로 전에 query_posts을 사용하여 모든 유형의 쿼리를 구성하거나 수정하지 마십시오. 많은 시나리오, 특히 페이지 매김에서 철저히 실패하고 절대 수행해서는 안되는 주요 쿼리가 중단됩니다. 오히려 또한 WP_Query

를 사용하여 사용자 정의 쿼리를 구성해야하는 경우

, showposts은 오래 전에 deprerciated되었고, 당신은 Shortcode API을 읽어야 posts_per_page

로 대체되었습니다, 이것은 당신에게 개관을 주어야한다 무슨 일이 일어나고 있는지 그리고 어떻게 단축 코드를 사용하고 만들어야하는지에 대해 여기에서 기억해야 할 중요한 한 가지, 짧은 코드 콘텐츠는 반향되어야하며 반향되지 않아야합니다. 나에게 많은 도움이되는 tutorial도 있습니다.

짧은 팁만 있으면 짧은 코드는 항상 플러그인으로 이동해야합니다. 아직 하나를 작성하지 않은 경우, 아래의 표와 같이 MU-Plugin (must-use-plugin)

것이다 당신의 단축 코드를 구성하는 올바른 방법을 읽어 : (당신의 단축 코드가 [my-shortcode] 될 것입니다)

add_shortcode('my-shortcode', 'my_custom_query_shortcode'); 
function my_custom_query_shortcode($atts) { 
    ob_start(); 

$query = new WP_Query(array('orderby' => 'date', 'order' => 'DESC' , 'posts_per_page' => 1)); 

if ($query->have_posts()) : 
    while($query->have_posts()) : $query->the_post(); 

     //YOUR LOOP ELEMENTS 

     <?php 
     endwhile; 

    $myvariable = ob_get_clean(); 

    return $myvariable; 

endif;  

} 

그냥 교체하지만이 안된 당신의 코드를 작성하고 루프 요소를 추가했는지 확인하십시오.

페이지에서 맞춤 검색어를 실행하고 해당 검색어를 재설정하지 않은 경우 해당 단축키조차도 다른 검색어에 영향을 미치므로 항상 재설정해야합니다. 일단 사용자가 수행 한 모든 사용자 정의 쿼리는 루프를 반복 할 때마다 덮어 쓰여지므로

관련 문제