2012-02-22 2 views
0

wordpress 플러그인으로 루프 할 수 있습니까?루프가 내 플러그인에서 작동하지 않습니다

내가 이벤트의 내 ​​사용자 정의 포스트 형식의 게시물에 대한 몇 가지 정보를 잡기 위해 워드 프레스 루프를 이용하여이 플러그인을 만들었습니다

function getEventsFeed() { 
    $args = array('post_type' => 'events'); 
    $loop = new WP_Query($args); 
    $htmlOutput = '<h2>Events</h2>'; 
    while ($loop->have_posts()) : $loop->the_post(); 
     $date = get_post_meta($post->ID, 'events_0'); 
     $location = get_post_meta($post->ID, 'events_9'); 
     $htmlOutput .= '<tr><td>' . the_title() . '</td><td>' . $date[0] . '</td><td><a href="' . get_bloginfo('url') . '/event/?id='. $post->ID . '">' . $post->post_title .'</a></td><td>' .   $location[0] . '</td></tr>'; 
     endwhile; 
     $htmlOutput .= '</div>'; 
     echo $htmlOutput; 
    } 

문제 만 the_title 정보가 반환됩니다됩니다. $ post-> ID와 $ post-> post_title이 반환되지 않도록 $ post가 루프 내에서 작동하지 않습니다. 이 정확한 코드를 다른 페이지 템플릿에서 사용하고 있으며 모든 데이터를 올바르게 반환합니다. 나는 플러그인에서 사용할 때 왜 돌아 오지 않을지 모르겠다.

아이디어가 있으십니까?

답변

3

시도 함수의 시작 부분에

global $post; 

를 추가. $ loop-> the_post()는 전역 $ post 변수를 설정하지만 함수 범위 내에서는 사용할 수 없습니다.

+0

예! 그것은 실제로 그것을 고쳤습니다. 많은 감사합니다. 왜 그래도! –

+0

글로벌 변수 및 로컬 변수 범위에 대한 몇 가지 내용을 확인하십시오. http://www.php.net/manual/en/language.variables.scope.php#language.variables.scope.global –

관련 문제