Переписать URL из WordPress Framework из кода ... Как? - PullRequest
0 голосов
/ 23 июля 2011

Я создал плагин ... Я использую свою собственную переменную в этом плагине, и я хочу переписать этот URL для SEO, но я не могу. Если я использую генератор постоянных ссылок WordPress, то перезапись - это работа, но если я хочу использовать официальные коды в моем плагине для перезаписи, то это не сработает.

Вот простой код, который не работает. Я не знаю почему.

add_filter('rewrite_rules_array','wp_insertMyRewriteRules');
add_filter('query_vars','wp_insertMyRewriteQueryVars');
add_filter('init','flushRules');

// Remember to flush_rules() when adding rules
function flushRules(){
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

// Adding a new rule
function wp_insertMyRewriteRules($rules)
{
    $newrules = array();
    $newrules['(project)/(\d*)$'] = 'index.php?pagename=$matches[1]&id=$matches[2]';
    return $newrules + $rules;
}

// Adding the id var so that WP recognizes it
function wp_insertMyRewriteQueryVars($vars)
{
    array_push($vars, 'id');
    return $vars;
}


function search_url_rewrite_rule() {
if ( is_search() && !empty($_GET['s'])) {
wp_redirect(home_url("/search/") . urlencode(get_query_var('s')));
exit();
}
}
add_action('template_redirect', 'search_url_rewrite_rule');

Я написал новый код в свой плагин, но он не действует:

add_action('admin_init', 'flush_rewrite_rules');

add_action('generate_rewrite_rules', 'geotags_add_rewrite_rules');
function geotags_add_rewrite_rules( $wp_rewrite ) 
{
  $new_rules = array( 
     'p/(.+)' => 'index.php?p=' .
       $wp_rewrite->preg_index(1) );

  // Add the new rewrite rule into the top of the global rules array
  $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}

1 Ответ

1 голос
/ 23 июля 2011

Вы пытались просмотреть эту страницу

http://codex.wordpress.org/Class_Reference/WP_Rewrite

, и я думаю, что вы должны каждый раз сбрасывать правила ..

...