Title: Hows to create a redirection &#8220;wildcard&#8221; function
Last modified: October 25, 2019

---

# Hows to create a redirection “wildcard” function

 *  [TWD](https://wordpress.org/support/users/twd/)
 * (@twd)
 * [6 years, 6 months ago](https://wordpress.org/support/topic/hows-to-create-a-redirection-wildcard-function/)
 * I’ve got the following switch statement which works well.
 *     ```
       switch ($currenturl_relative) {
   
               case '/devel/lms/ja/lessons/planning-a-meeting-int/':
                   $urlto = home_url('/lessons/planning-a-meeting-int/');
                   break;
   
               case '/devel/lms/ja/quizzes/planning-a-meeting-int-quiz/':
                   $urlto = home_url('/quizzes/planning-a-meeting-int-quiz/');
                   break;    
   
               default:
                   return;
   
           }
       ```
   
 * But I’d like to set this up so it works in a “wild card” fashion.
    Something 
   like:
 *     ```
       switch ($currenturl_relative) {
   
               case '/devel/lms/ja/lessons/*/':
                   $urlto = home_url('/lessons/*/');
                   break;
   
               case '/devel/lms/ja/quizzes/*/':
                   $urlto = home_url('/quizzes/*/');
                   break;    
   
               default:
                   return;
   
           }
       ```
   
 * But of course “*” (asterisk) is NOT the correct syntax.
    Any advice on how to
   extract the final URL parameter as a variable that can be just plugged into the
   redirection case switcher? A rookie PHP question to be sure 😉
    -  This topic was modified 6 years, 6 months ago by [TWD](https://wordpress.org/support/users/twd/).

Viewing 5 replies - 1 through 5 (of 5 total)

 *  [Laygen](https://wordpress.org/support/users/laygen/)
 * (@laygen)
 * [6 years, 6 months ago](https://wordpress.org/support/topic/hows-to-create-a-redirection-wildcard-function/#post-12064500)
 * Hi,
 * You can use regex for do that, something like this return the * value:
 *     ```
       <?php
   
       $string = '/devel/lms/ja/lessons/planning-a-meeting-int/';
   
       $out = '';
   
       preg_match( '/\/devel\/lms\/ja\/lessons\/(.*)\//', $string, $out );
   
       var_dump( $out );
       ```
   
 *  Thread Starter [TWD](https://wordpress.org/support/users/twd/)
 * (@twd)
 * [6 years, 6 months ago](https://wordpress.org/support/topic/hows-to-create-a-redirection-wildcard-function/#post-12064526)
 * Thanks but I think you kind of missed my point.
 * `$string = '/devel/lms/ja/lessons/planning-a-meeting-int/';`
 * I want something thats going to parse out ALL urls that begin: /devel/lms/ja/
   lessons/[slug]/
 * and return them as:
    /lessons/[slug]/
 * Hence the question about “wild card” parameters.
 *  [Laygen](https://wordpress.org/support/users/laygen/)
 * (@laygen)
 * [6 years, 6 months ago](https://wordpress.org/support/topic/hows-to-create-a-redirection-wildcard-function/#post-12065439)
 * For all url start with /devel/lms/ja/lessons/[slug]/
 *     ```
       <?php
   
       $tests_url = array();
       $tests_url[0] = '/devel/lms/ja/lessons/planning-a-meeting-int/';
       $tests_url[1] = '/devel/lms/ja/lessons/test/';
   
       $out = '';
   
       foreach ( $tests_url as $test_url ) {
          preg_match( '/\/devel\/lms\/ja\/(lessons)\/(.*)\//', $test_url, $out );
          var_dump( $out );
       }
       ```
   
 * For the first entry of tests_url: /devel/lms/ja/lessons/planning-a-meeting-int/
 * $out[0] = “/devel/lms/ja/lessons/planning-a-meeting-int/”
    $out[1] = “lessons”
   $out[2] = “planning-a-meeting-int”
 * For the second entry of tests_url: /devel/lms/ja/lessons/test/
 * $out[0] = “/devel/lms/ja/lessons/test/”
    $out[1] = “lessons” $out[2] = “test”
 *  [autotutorial](https://wordpress.org/support/users/autotutorial/)
 * (@autotutorial)
 * [6 years, 6 months ago](https://wordpress.org/support/topic/hows-to-create-a-redirection-wildcard-function/#post-12065675)
 *     ```
       <?php
   
       //$string = '/devel/lms/ja/lessons/';
       $string = '/devel/lms/ja/lessons/planning-a-meeting-int/';
   
       preg_match_all( '|^/devel/lms/ja/([^/]+)/([^/]*)/$|', $string, $out );
   
       if(!empty($out[1]))
       {
       $out[0] = $out[1][0];
       $out[1] = $out[2][0];
       unset($out[2]);
       // Without start and end slash
       var_dump( $out );
       }
       ```
   
 * leassons or quizzle is first slug
 *  [autotutorial](https://wordpress.org/support/users/autotutorial/)
 * (@autotutorial)
 * [6 years, 6 months ago](https://wordpress.org/support/topic/hows-to-create-a-redirection-wildcard-function/#post-12065953)
 * If $currenturl_relative returns the path with two slugs you can also temporarily
   insert a variable containing only the two slugs.
 *     ```
       <?php
       $currenturl_relative = '/devel/lms/ja/lessons/planning-a-meeting-int/';
       $start_url = dirname(dirname($currenturl_relative)).'/';
       $slug_all = substr($currenturl_relative,strlen($start_url));
       switch ($start_url) {
       case '/devel/lms/ja/';
       preg_match( '|^([^/]+)+/([^/]+)+/$|', $slug_all, $out );
   
       if(!empty($out))
       {
       $out[0] = $out[1];
       $out[1] = $out[2];
       unset($out[2]);
       // Without start and end slash
       var_dump( $out );
       }
       break;
   
       default:
       return;
       }
       ```
   
 * Fix with preg_match…
 *     ```
       <?php
       //$string = '/devel/lms/ja/lessons/';
       $string = '/devel/lms/ja/lessons/planning-a-meeting-int/';
   
       preg_match( '|^/devel/lms/ja/([^/]+)+/([^/]+)+/$|', $string, $out );
   
       if(!empty($out))
       {
       $out[0] = $out[1];
       $out[1] = $out[2];
       unset($out[2]);
       // Without start and end slash
       var_dump( $out );
       }
       ```
   
    -  This reply was modified 6 years, 6 months ago by [autotutorial](https://wordpress.org/support/users/autotutorial/).

Viewing 5 replies - 1 through 5 (of 5 total)

The topic ‘Hows to create a redirection “wildcard” function’ is closed to new replies.

 * In: [Developing with WordPress](https://wordpress.org/support/forum/wp-advanced/)
 * 5 replies
 * 3 participants
 * Last reply from: [autotutorial](https://wordpress.org/support/users/autotutorial/)
 * Last activity: [6 years, 6 months ago](https://wordpress.org/support/topic/hows-to-create-a-redirection-wildcard-function/#post-12065953)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
