0
我創建了一個插件...我在這個插件中使用了我的自定義變量,並且我想爲SEO重寫這個URL,但是我不能。如果我使用WordPress的永久生成器,那麼重寫是可行的,但如果我想在我的插件中使用官方代碼進行重寫,那麼它不起作用。使用WordPress框架從代碼重寫URL ...如何?
這裏是一個簡單的代碼什麼是不工作。我不知道爲什麼。
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;
}
我寫入我的插件一個新的代碼,但它沒有影響: add_action('admin_init','flush_rewrite_rules'); add_action('generate_rewrite_rules','geotags_add_rewrite_rules'); 功能geotags_add_rewrite_rules($ wp_rewrite) { $ new_rules =陣列( 'P /(.+)'=> '的index.php P =?' $ wp_rewrite-> preg_index(1))。 //將新的重寫規則添加到全局規則數組的頂部 $ wp_rewrite-> rules = $ new_rules + $ wp_rewrite-> rules; } – David