WordPress:检查当前URL是/ cpt / something但不是/ cpt / something / var

时间:2013-10-22 23:20:53

标签: php wordpress wordpress-theming

我的WordPress网站有自定义帖子类型“汽车”,所以我有类似www.example.com/car/honda-civic-2013/

的内容

现在我还使用显示特定信息的add_rewrite_endpoint()进行“购买”操作:www.example.com/car/honda-civic-2013/buy

在我的header.php模板中,检查当前页面是否“买”的适当方法是什么?

这就是我所拥有的:

if (is_singular('car')) {
    echo "Click here to buy this car";
}

虽然有效,但它还会在/ buy页面上显示“点击此处购买此车”,我想避免这样做!

我想要一个永久的解决方案,这意味着我不想特别检查“购买”,但检查ANY /子操作,以便上面仅在主CustomPostType页面上回显。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

这比你可能想要的代码更重,但这应该有效:

// Get the current URL
$url  = @( $_SERVER['HTTPS'] != 'on' ) ? 'http://' . $_SERVER['SERVER_NAME'] :  'https://' . $_SERVER['SERVER_NAME'];
$url .= ( $_SERVER['SERVER_PORT'] !== 80 ) ? ":" . $_SERVER['SERVER_PORT'] : '';
$url .= $_SERVER['REQUEST_URI'];

// If current URL is for cars and not the "buy" page
if ( is_singular('car') && !strpos($url,'/buy') ) {
    echo "Click here to buy this car";
}

<强>来源:

答案 1 :(得分:0)

global $wp_query;
if (is_singular('car') && !isset($wp_query->query['buy'])) {
    echo "Click here to buy this car";
}