2009-08-21 5 views
0

기본적으로 나는 아카이브 페이지에 미래 날짜의 게시물을 허용하는 플러그인을 가지고 놀고 있습니다. 내 질문은이 특정 기능보다 광범위하지만 모든 사람들은 일부 상황을 좋아합니다.플러그인에서 WordPress의 검색어를 수정하는 올바른 방법은 무엇입니까?

저는 많은 플러그인 개발 개념에 대해 머리를 맞췄지만 매우 기본적인 것을 놓치고 있어야합니다.

function modify_where($where) { 
    global $wp_query; 
    // define $year, $cat, etc 
    if(is_archive()) { 
    $where = " AND YEAR(wp_posts.post_date)='".$year."' AND wp_term_taxonomy.taxonomy = 'category' AND wp_term_taxonomy.term_id IN ('".$cat."') AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'future')"; 
    } 
    return $where; 
} 

add_filter('posts_where', 'catCal_where'); 

그러나, 내가 메인 루프 후 새로운 WP_ Query('different_query_stuff ')을 만들려고하면 새 쿼리가 같은 사용

나는 성공적으로 내가 같이 원하는 나에게 결과를 제공하는 쿼리를 다시 작성할 수 있습니다 위에 설명 된 WHERE 문.

질문 : 무엇이 누락 되었습니까?

감사합니다. Function Reference WP_Query

rewind_posts() 
Resets $current_post and $post. 

답변

0
그냥 추측

, 나는 WP 전문가 아니에요으로,하지만 어쩌면 rewind_posts은, 당신이 아마하고 싶은 것은 WP 조치에 해당 필터를 제거합니다. wp, add_action ('wp', 'my_remove_filter_action', 999)에서 작업을 추가하고 'my_remove_filter_action'을 사용하여 쿼리에 넣은 필터를 제거하여 페이지 쿼리에 영향을 미치고 페이지의 나머지 부분에 대해 비활성 상태로 만듭니다 하중.

WP보다 이전에 작동하는 다른 필터를 찾아서 필터를 제거 할 수도 있습니다. 기본적으로 쿼리를 기본 페이지 쿼리로만 제한하려고합니다.

관련 문제