Tagged: Dynamic Page, Page Template, Query Vars, Rewriting Rule, WordPress
- This topic has 0 replies, 1 voice, and was last updated 3 years, 6 months ago by
Caezar De Castro II.
-
AuthorPosts
-
October 31, 2018 at 7:21 PM #9465
Caezar De Castro IIKeymasterWordPress can create a rewrite rule natively. We want to make use of that to listen for a specific slug and if that slug is existing on on the GET query. Our task to provide a page template for that page to render on the screen.
But first, we need to make a new rewrite rule with the following scripts. In this script, we want to rule to slug called ‘custom’.
function bytescrafter_rewrite_rules() { add_rewrite_rule( 'custom/([^/]+)/?$', 'index.php?custom=true', 'top' ); } add_action('init', 'bytescrafter_rewrite_rules');
Second, we need to register a query var on WordPress.
function bytescrafter_register_query_var( $vars ) { $vars[] = 'custom'; return $vars; } add_filter( 'query_vars', 'bytescrafter_register_query_var' );
Third, we just need to display a specific template for that previously created slug for the custom page.
function bytescrafter_custom_template_include($template) { //Load $wp_query object global $wp_query; //Check if query var is set and equal to target permalink. $page_value = isset($wp_query->query_vars['category_name']) ? $wp_query->query_vars['category_name'] : true; //Check if page is our target page hence return. if ($page_value == "jesus") { return get_stylesheet_directory().'/templates/custom.php'; //set the target template. } else { return $template; //Load normal template fallback } } add_filter('template_include', 'bytescrafter_custom_template_include', 1, 1);
Just take note that you can add this scripts on either your custom plugin or active theme’s function.php. For more WordPress codex tutorial, see Easiest way of having a site is WordPress for other WordPress codex tutorial.
-
AuthorPosts
You must be logged in to reply to this topic. Login here