使用获取参数从位置A =>位置B重定向到Wordpress

时间:2019-01-28 10:51:26

标签: wordpress apache .htaccess redirect

我想在RedirectMatch中为{press}中的自定义帖子类型设置一个.htaccess,然后将自定义帖子类型slug附加到它作为get参数。自定义帖子类型为“ programme

考虑到我对正则表达式都一无所用,并且我不太熟悉Apache重定向,我对尝试什么或在何处查找示例材料有些迷茫。

我认为我需要执行以下操作才能重定向所有/ programmes:

RedirectMatch ^/programmes.*)$ http://example.com/staffroom?programme=$1

我也在主题扩展代码中尝试过此操作:

// Setup "Programme" (Custom Post Type) specific redirects for the sitemap:
add_action( 'template_redirect', 'programme_redirect_post' );

function programme_redirect_post() {
  $queried_post_type = get_query_var('post_type');
  // Check that the post_name is equal to the programme slug:
  if ( is_single() && 'programme' ==  $queried_post_type ) {
    // If true, get the post_name (which I believe is the slug):
    $programme_slug = get_query_var('post_name');
    // A little string format manipulation:
    $programme_redirect = sprintf("/staffroom?programme=%s", $programm_slug);
    // Go Wordpress Redirect! (301: Permanent)
    wp_redirect( $programme_redirect , 301 );
    exit;
  }
}

预期结果是用户导航至:

https://example.com/programmes/the-meaning-of-life https://example.com/programmes/more-about-the-meaning-of-life

它们分别很快被重定向到:

https://example.com/dashboard?programme=the-meaning-of-life https://example.com/dashboard?programme=more-about-the-meaning-of-life

有效地向用户隐藏程序路由。

但是,不幸的是,我没有任何实际需要注意的结果。

N.B。我希望能够使用Wordpress以编程方式完成上述所有操作……只是为了保持 .htaccess 干净。

0 个答案:

没有答案