我希望WordPress使用可变参数处理传入的url而不是抛出404.基本上,传入的URL可能如下所示:
http://mysite.com/custom-post-type/some-post/?promo=12er34
然后我将最后一段传递到注册表格以进行促销。显然,直接点击这个URL会抛出404.
无论如何在我的自定义帖子类型中设置一个条件,如果传入的网址有一个额外的指定片段,它将允许匹配?
答案 0 :(得分:1)
在自定义的帖子后模板中,您可以这样做:
$code = isset( $_GET[ 'promo' ] ) ? sanitize_text_field( $_GET[ 'promo' ] ) : '';
顺便说一句,您的网址中的参数在?
之前应该有promo
。
像这样:http://mysite.com/custom-post-type/some-post/?promo=12er34
<强>更新强>
如果您想获得此值,无论您使用的是自定义帖子类型还是默认的帖子类型,请在functions.php
中尝试此操作:
function get_promo_code( $wp ) {
if( ! is_single() )
return;
// Do whatever you want with the promo code here.
$code = isset( $_GET[ 'promo' ] ) ? sanitize_text_field( $_GET[ 'promo' ] ) : '';
}
add_action( 'wp', 'get_promo_code' );