<支持>Note: WordPress故意拼错了“referer”一词,因此,我也是
如果你只想检查推荐人是否是你的contact-us
页面或任何单个贴子页面,然后您可以首先检索当前URL路径(即。example.com/<this part>/
) 然后检查路径是否正确contact-us
(或者你的联系人页面的slug),并使用get_posts()
找到一个以该路径作为slug的帖子。
所以试试这个,它对我很有用(用WordPress 5.6.1测试):
// Replace this:
if (wp_get_referer() === get_site_url().\'/contact-us/\') {
return;
}
// with this:
$path = trim( parse_url( wp_get_referer(), PHP_URL_PATH ), \'/\' );
// If it\'s the contact page, don\'t redirect.
if ( \'contact-us\' === $path ) {
return;
} elseif ( $path ) {
$posts = get_posts( array(
\'name\' => $path,
\'posts_per_page\' => 1,
) );
// If a post with the slug in $path was found, don\'t redirect.
if ( ! empty( $posts ) ) {
return;
}
}
<但是请注意,只有在permalink结构(默认为
post
类型)是
/%postname%/
— 带或不带前导和/或尾随斜杠请记住,referer很容易被欺骗,因此您可能需要考虑一种更可靠的方法,例如使用寿命较短的瞬变或非瞬变