2012-01-24 1 views
0

문제 내 GET-변수에/데모 /를 재 작성 할워드 프레스 -에서 다시 작성/데모에 데모/

.

나의 현재 퍼머 구조 :
/나의 새로운 포스트/데모 = 사실

내가 원하는 것은 :
/나의 새로운 포스트/데모/

이 코드를 가지고 :

"데모"$ _GET 변수를 허용 한 다음 "true"를 반향합니다. 그것은 작동, 그냥 재 작성 부분을 왼쪽으로.

<?php 
add_filter('query_vars', 'queryvars'); 
add_action('parse_query', 'echo_query_var'); 

function queryvars($qvars) 
{ 
    $qvars[] = 'demo'; 
    return $qvars; 
} 

function echo_query_var() { 
    echo get_query_var('demo'); 
} 
?> 

그것은 (단지 "나의 새로운 포스트를") 모든 글과 함께 작동합니다

  • 추가 정보입니다.
  • 404를 반환하지 않아야합니다.
  • 게시 ID를 가져올 수 있어야합니다.
  • GET 변수 "demo"는 true 또는 비어있을 수 있습니다. 중요하지 않습니다.
  • 이 지금까지 작동

답변

0

...

// Actions - Rewrite rules 
add_filter('query_vars', array($wp_comment_pages, 'add_get_variable')); 
add_action('generate_rewrite_rules', array($wp_comment_pages, 'add_rewrite_rule')); 

// Plugin container 
class wp_comment_pages 
{ 
    // Flush the rules - only needed once 
    function flush_rules() 
    { 
     global $wp_rewrite; 
     $wp_rewrite->flush_rules(); 
    } 

    // Add get variable to query vars 
    function add_get_variable($public_query_vars) 
    { 
     $public_query_vars[] = 'demo'; 
     return $public_query_vars; 
    } 

    // Generate permalinks 
    function add_rewrite_rule($wp_rewrite) 
    { 
     $new_rules = array(
      '(.+)/demo' => 'index.php?p=' . $wp_rewrite->preg_index(1) . '&demo=true' 
     ); 

     $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; 
    } 
}