Open the page with the current slug?

First, I put the following rewrite rule in functions.php: function custom_page_rewrite_rule() { add_rewrite_rule( ‘^category/([^/]+)/([^/]+)/?$’, // Matches /category/news/add-new-post/ ‘index.php?pagename=$matches[2]’, // Loads the page by slug ‘top’ // Priority ); } add_action(‘init’, ‘custom_page_rewrite_rule’); And then changed the “Add New Post” button’s link to this: <?php echo ‘<a href=”‘.home_url(“category/news/add-new-post/”>’; echo “Add New Post”;'</a>’;

Add a trailing slash at the end of the category URLs

Short Answer If your category URLs look like /?category=761, you are still on Plain permalinks. Switch to any “pretty” structure (e.g. /%category%/%postname%/) and save—WordPress will output /category/slug/ with the trailing slash. Already on pretty permalinks and the slash is still missing? Add this in a site-specific plugin or Code Snippets: add_filter( ‘category_link’, ‘force_cat_slash’, 10, 2 … Read more

Display content based on multiple URL parameters—pretty URL or query string

you have a little error in the call of add_rewrite_rule with an extra slash before index.php. with this correction, your system works without a CPT like data. you can try that : add_action(‘init’, function () { add_rewrite_rule( ‘^data/([a-z0-9-]+)/([a-z0-9-]+)/([a-z0-9-]+)/?$’, ‘index.php?data_type=$matches[1]&data_action=$matches[2]&data_post_id=$matches[3]’, ‘top’ ); }); add_action(“template_redirect”, function () { $data = []; foreach ([“data_type”, “data_action”, “data_post_id”] as $key) … Read more