Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从代码中用WordPress框架重写URL。。。怎么用?_Wordpress_Url Rewriting_Permalinks - Fatal编程技术网

从代码中用WordPress框架重写URL。。。怎么用?

从代码中用WordPress框架重写URL。。。怎么用?,wordpress,url-rewriting,permalinks,Wordpress,Url Rewriting,Permalinks,我创建了一个插件。。。我在这个插件中使用了我的自定义变量,我想为SEO重写这个url,但我不能。如果我使用WordPress的Permalink生成器,那么重写是可行的,但是如果我想使用插件中的官方代码进行重写,那么它就不可行 这里是一个简单的代码什么是不工作的。我不知道为什么 add_filter('rewrite_rules_array','wp_insertMyRewriteRules'); add_filter('query_vars','wp_insertMyRewriteQueryV

我创建了一个插件。。。我在这个插件中使用了我的自定义变量,我想为SEO重写这个url,但我不能。如果我使用WordPress的Permalink生成器,那么重写是可行的,但是如果我想使用插件中的官方代码进行重写,那么它就不可行

这里是一个简单的代码什么是不工作的。我不知道为什么

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;
}

你试过看这一页吗


我想你每次都必须刷新规则。

我在插件中写了一个新代码,但没有效果:添加操作(“admin_init”,“flush_rewrite_rules”);添加操作(“生成重写规则”、“地理标记添加重写规则”);函数geotags_add_rewrite_rules($wp_rewrite){$new_rules=array('p/(.+)=>index.php?p='.$wp_rewrite->preg_index(1));//将新的重写规则添加到全局规则数组的顶部$wp_rewrite->rules=$new_rules+$wp_rewrite->rules;}