Skip to main content
added 525 characters in body
Source Link
Hassan Alvi
  • 305
  • 3
  • 11

Add this code in functions.php

function custom_rewrite_rule() {

    //Initializing Rewrite Tags
    add_rewrite_tag('%begin-date%', '([^&]+)');
    add_rewrite_tag('%end-date%', '([^&]+)');
    add_rewrite_tag('%offset%', '([^&]+)');

    //Find page rewrite rules
    add_rewrite_rule('^find/([^/]*)/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]&offset=$matches[3]','top');
    add_rewrite_rule('^find/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]','top');

    flush_rewrite_rules();
}
add_action('init', 'custom_rewrite_rule', 10, 0);

On your custom search page template

$begin_date = get_query_var('begin-date');
$end_date   = get_query_var('end-date');
$offset     = get_query_var('offset') ? get_query_var('offset') : 1;

Create a page having slug find and apply a custom page template over it .. replace <SEARCH_PAGE_ID> with the newly created page ID and update the permalink structure!

Use these values in your custom query in the page template! :)

This code will render the URL as per your desired structure!

  • mysite.com/find/begin-date/end-date
  • mysite.com/find/begin-date/end-date/offset (if you need pagination to be enabled)

In case you want the second option .. you can simply use the following code over your find page template and everything will work!

$begin_date = $_GET['begin'];
$end_date   = $_GET['end');
$offset     = $_GET['page'] ? $_GET['page'] : 1;
  • mysite.com/find?begin=2018-03-05&end=2018-03-10
  • mysite.com/find?begin=2018-03-05&end=2018-03-10&page=2

Add this code in functions.php

function custom_rewrite_rule() {

    //Initializing Rewrite Tags
    add_rewrite_tag('%begin-date%', '([^&]+)');
    add_rewrite_tag('%end-date%', '([^&]+)');
    add_rewrite_tag('%offset%', '([^&]+)');

    //Find page rewrite rules
    add_rewrite_rule('^find/([^/]*)/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]&offset=$matches[3]','top');
    add_rewrite_rule('^find/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]','top');

    flush_rewrite_rules();
}
add_action('init', 'custom_rewrite_rule', 10, 0);

On your custom search page template

$begin_date = get_query_var('begin-date');
$end_date   = get_query_var('end-date');
$offset     = get_query_var('offset') ? get_query_var('offset') : 1;

Create a page having slug find and apply a custom page template over it .. replace <SEARCH_PAGE_ID> with the newly created page ID and update the permalink structure!

Use these values in your custom query in the page template! :)

This code will render the URL as per your desired structure!

Add this code in functions.php

function custom_rewrite_rule() {

    //Initializing Rewrite Tags
    add_rewrite_tag('%begin-date%', '([^&]+)');
    add_rewrite_tag('%end-date%', '([^&]+)');
    add_rewrite_tag('%offset%', '([^&]+)');

    //Find page rewrite rules
    add_rewrite_rule('^find/([^/]*)/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]&offset=$matches[3]','top');
    add_rewrite_rule('^find/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]','top');

    flush_rewrite_rules();
}
add_action('init', 'custom_rewrite_rule', 10, 0);

On your custom search page template

$begin_date = get_query_var('begin-date');
$end_date   = get_query_var('end-date');
$offset     = get_query_var('offset') ? get_query_var('offset') : 1;

Create a page having slug find and apply a custom page template over it .. replace <SEARCH_PAGE_ID> with the newly created page ID and update the permalink structure!

Use these values in your custom query in the page template! :)

This code will render the URL as per your desired structure!

  • mysite.com/find/begin-date/end-date
  • mysite.com/find/begin-date/end-date/offset (if you need pagination to be enabled)

In case you want the second option .. you can simply use the following code over your find page template and everything will work!

$begin_date = $_GET['begin'];
$end_date   = $_GET['end');
$offset     = $_GET['page'] ? $_GET['page'] : 1;
  • mysite.com/find?begin=2018-03-05&end=2018-03-10
  • mysite.com/find?begin=2018-03-05&end=2018-03-10&page=2
added 64 characters in body
Source Link
Hassan Alvi
  • 305
  • 3
  • 11

Add this code in functions.php

function custom_rewrite_rule() {

    //Initializing Rewrite Tags
    add_rewrite_tag('%begin-date%', '([^&]+)');
    add_rewrite_tag('%end-date%', '([^&]+)');
    add_rewrite_tag('%offset%', '([^&]+)');

    //Find page rewrite rules
    add_rewrite_rule('^find/([^/]*)/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]&offset=$matches[3]','top');
    add_rewrite_rule('^find/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]','top');

    flush_rewrite_rules();
}
add_action('init', 'custom_rewrite_rule', 10, 0);

On your custom search page template

$begin_date = get_query_var('begin-date');
$end_date   = get_query_var('end-date');
$offset     = get_query_var('offset') ? get_query_var('offset') : 1;

Create a page having slug find and apply a custom page template over it .. replace <SEARCH_PAGE_ID> with the newly created page ID and update the permalink structure!

Use these values in your custom query in the page template! :)

This code will render the URL as per your desired structure!

Add this code in functions.php

function custom_rewrite_rule() {

    //Initializing Rewrite Tags
    add_rewrite_tag('%begin-date%', '([^&]+)');
    add_rewrite_tag('%end-date%', '([^&]+)');
    add_rewrite_tag('%offset%', '([^&]+)');

    //Find page rewrite rules
    add_rewrite_rule('^find/([^/]*)/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]&offset=$matches[3]','top');
    add_rewrite_rule('^find/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]','top');

    flush_rewrite_rules();
}
add_action('init', 'custom_rewrite_rule', 10, 0);

On your custom search page template

$begin_date = get_query_var('begin-date');
$end_date   = get_query_var('end-date');
$offset     = get_query_var('offset') ? get_query_var('offset') : 1;

Create a page having slug find and apply a custom page template over it .. replace <SEARCH_PAGE_ID> with the newly created page ID and update the permalink structure!

Use these values in your custom query in the page template! :)

Add this code in functions.php

function custom_rewrite_rule() {

    //Initializing Rewrite Tags
    add_rewrite_tag('%begin-date%', '([^&]+)');
    add_rewrite_tag('%end-date%', '([^&]+)');
    add_rewrite_tag('%offset%', '([^&]+)');

    //Find page rewrite rules
    add_rewrite_rule('^find/([^/]*)/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]&offset=$matches[3]','top');
    add_rewrite_rule('^find/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]','top');

    flush_rewrite_rules();
}
add_action('init', 'custom_rewrite_rule', 10, 0);

On your custom search page template

$begin_date = get_query_var('begin-date');
$end_date   = get_query_var('end-date');
$offset     = get_query_var('offset') ? get_query_var('offset') : 1;

Create a page having slug find and apply a custom page template over it .. replace <SEARCH_PAGE_ID> with the newly created page ID and update the permalink structure!

Use these values in your custom query in the page template! :)

This code will render the URL as per your desired structure!

Source Link
Hassan Alvi
  • 305
  • 3
  • 11

Add this code in functions.php

function custom_rewrite_rule() {

    //Initializing Rewrite Tags
    add_rewrite_tag('%begin-date%', '([^&]+)');
    add_rewrite_tag('%end-date%', '([^&]+)');
    add_rewrite_tag('%offset%', '([^&]+)');

    //Find page rewrite rules
    add_rewrite_rule('^find/([^/]*)/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]&offset=$matches[3]','top');
    add_rewrite_rule('^find/([^/]*)/([^/]*)/?','index.php?page_id=<SEARCH_PAGE_ID>&begin-date=$matches[1]&end-date=$matches[2]','top');

    flush_rewrite_rules();
}
add_action('init', 'custom_rewrite_rule', 10, 0);

On your custom search page template

$begin_date = get_query_var('begin-date');
$end_date   = get_query_var('end-date');
$offset     = get_query_var('offset') ? get_query_var('offset') : 1;

Create a page having slug find and apply a custom page template over it .. replace <SEARCH_PAGE_ID> with the newly created page ID and update the permalink structure!

Use these values in your custom query in the page template! :)