I\'m not very sure of what you\'re trying to achieve, but I hope this answer can help. :)
<根据自定义帖子类型的注册方式,WordPress将为CPT的单个帖子页面创建如下自定义重写规则:
RegEx: ballinfo/([^/]+)(?:/([0-9]+))?/?$
Query: index.php?balls=$matches[1]&page=$matches[2]
对于以下问题:
我如何知道某个站点是否调用了/ballinfo
还是不
当balls
如果访问了帖子,则URL将/ballinfo/
如中所示example.com/ballinfo/an-example-balls-post
.
现在以编程方式检查URL是否包含/ballinfo/
, 您可以检查$request
全球的财产WP
类实例以ballinfo/
像这样:
global $wp;
if ( preg_match( \'#^ballinfo/#\', $wp->request ) ) {
echo \'Site was called with the /ballinfo<br>\';
}
echo \'$wp->request is \' . $wp->request . \'<br>\';
对于以下问题:
如何知道是否匹配并使用了重写规则?
您可以将规则(RegEx)与$matched_rule
全球的财产WP
类实例。
例如,对于单个balls
如果规则使用正则表达式模式(如本答案第#1点所示),请尝试以下操作:
global $wp;
if ( \'ballinfo/([^/]+)(?:/([0-9]+))?/?$\' === $wp->matched_rule ) {
echo \'Yay, my rewrite rule was matched!<br>\';
} else {
echo \'Not matched. $wp->matched_rule is \' . $wp->matched_rule . \'<br>\';
}
您可能已经知道这一点,但如果您只是想检查请求的URL是否用于CPT帖子/存档等,您可以使用
is_singular()
,
is_post_type_archive()
, 和其他合适的WordPress
conditional functions/tags.