如何创建自定义动态URL

时间:2019-06-11 作者:Sudhir

我想像这样创建自己的urlhttp://localhost/wptest/content/programs/trainings-conferences/

我已经创建了自己的插件并使用了这段代码。

add_action(\'init\',\'wpyog_add_rewrite_rules\');
add_action(\'init\',\'wpyog_add_rewrite_rules\');

function wpyog_add_rewrite_rules(){
    add_rewrite_rule(\'^content/([^/]*)/([^/]*)/?\',\'index.php?content_category=$matches[1]content_slug=$matches[2]\',\'top\');
}

add_action(\'query_vars\',\'wpyog_add_query_vars\');
function wpyog_add_query_vars( $qvars ) {
    $qvars[] = \'content_category\';
    $qvars[] = \'content_slug\';
    return $qvars;
}

add_action(\'template_redirect\',\'wpyog_template_redirect\');
function wpyog_template_redirect(){
   if( get_query_var(\'content_slug\') && get_query_var(\'content_category\') ) 
  {
    include( WPYog_Ukraine_PATH.\'templates/frontend_template.php\' );
    exit();
    }
 }
但它不工作,显示404页。当我使用这个url时,它可以工作http://localhost/wptest/?category=programs&category_slug=trainings-conferences

1 个回复
最合适的回答,由SO网友:Gregory 整理而成

您的重写模式缺少一个“&;”之间$matches[1] &;content_slug

function wpyog_add_rewrite_rules(){
    add_rewrite_rule(\'^content/([^/]*)/([^/]*)/?\',\'index.php?content_category=$matches[1]&content_slug=$matches[2]\',\'top\');
}

相关推荐

Debugging WP routing

对于一些帖子,我看到404页,即使存在帖子,在WP中使用永久链接决定需要呈现什么对象的位置在哪里?谢谢