2011-10-03 6 views
0

의심의 여지없이이 사이트에서 수많은 답변을 얻은이 간단한 질문에 대해서는 유감이지만 재 작성 규칙이 적용되지 않는 이유를 알 수 없습니다. 여기 Wordpress 기본 사용자 지정 다시 쓰기 규칙

내 코드입니다 :이 "myurl.com/org/13"을 변환해야합니다 지금까지 내가 그것을 이해

add_action('init', 'update_rewrite_rules'); 
function update_rewrite_rules(){ 
    add_rewrite_rule('^org/([^/]+)', 'index.php?pagename=about-us&org=$matches[1]', 'top'); 
    add_rewrite_tag('%org%', '[0-9]+'); 
} 

"myurl.com/index.php?pagename=about-su &에 org = 13 ". 내가 도대체 ​​뭘 잘못하고있는 겁니까???

.htaccess 파일에 쓸 수는 있지만 Wordpress 'custom PHP rewrite 함수가 내 코드를 대체하므로 변수 만 찾을 수는 있지만 페이지는 찾을 수 없습니다.

어쨌든, 어떤 조언이나 질문에 대해 감사하겠습니다! 감사.

답변

1

실제 재 작성 규칙 전에 쿼리 변수를 등록해야한다고 생각합니다. 또한 Wordpress Rewrite API에 명시된 바와 같이 플러시되고 캐시가 다시 생성 된 후에 만 ​​새 규칙을 인식합니다.

//Ensure the $wp_rewrite global is loaded 
global $wp_rewrite; 
//Call flush_rules() as a method of the $wp_rewrite object 
$wp_rewrite->flush_rules(); 

성능상의 이유로 모든 요청을 플러그인 정품 인증에서만 수행해야합니다.

add_action('admin_init', 'flush_rewrite_rules'); 

또한 Custom Quesries에 설명 된대로 규칙을 다시 정의 추가하는 또 다른 방법이있다.