I’ve added a url rewrite to my extras.php file and it’s working. But I can’t seem to set/get a custom public query variable. If I var_dump($qvars) below in lib/extras.php, it shows that ‘ptype’ has been pushed onto the end of the public variables array. But when I try to access the value in my template, it’s an empty string. Should I be putting this somewhere other than lib/extras.php or adding it to a different hook? Am I namespacing incorrectly? This worked fine in an non-sage, non-namespaced version on another site and is pretty much straight from the codex. Am I missing something obvious? Thanks.
In lib/extras.php:
namespace Sage\Rewrites; function custom_query_vars( $qvars ) { $qvars[] = 'ptype'; return $qvars; } add_filter( 'query_vars', __NAMESPACE__ . '\\custom_query_vars', 10, 1 ); function listen_rewrite_action() { add_rewrite_rule('^leasing/([^/]*)/?','index.php?post_type=page&name=leasing&ptype=$matches[1]','top'); } add_action( 'init', __NAMESPACE__ . '\\listen_rewrite_action' );
In template:
var_dump(get_query_var( 'ptype' )); //NULL