如果有精确的网址匹配,我想运行一些代码。
我目前有这个:
//Returns 'https://www.someurl.com'
$browserUrl = curPageURL();
现在我有一行用于构建基于$browserUrl
的新网址。为此,我创造了这个:
<?php
//Gets the url of a specific page
$page = icl_object_id(2880, 'page', true);
$url = get_permalink($page);
//Cplits the url into useful parts for rebuilding
$parts = explode("/", $url);
?>
//Here I am rebuilding the url based on the url I retrieved with the code above
<a href="<?php echo curPageURL() . $parts[4] . '#sendMessage'; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a>
但是,通过使用三元运算符,我实际上要做的是:
<a href="<?php echo curPageURL() . $browserUrl == 'https://www.someurl.com' ? $parts[3] : $parts[4] . '#sendMessage'; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a>
但是这没有按预期工作,因为它没有获得直接的网址匹配。这是正确的方法吗?
答案 0 :(得分:0)
如果你想要的是使用$parts[3]
或$parts[4]
取决于$browserUrl
检查,并且三元运算符是问题,那么我建议创建一个新变量,让我们说$part
,保存三元运算符的结果,然后在串联中使用它,如下所示:
<?php
//Gets the url of a specific page
$page = icl_object_id(2880, 'page', true);
$url = get_permalink($page);
//Cplits the url into useful parts for rebuilding
$parts = explode("/", $url);
$part = $browserUrl == 'https://www.someurl.com' ? $parts[3] : $parts[4];
?>
//Here I am rebuilding the url based on the url I retrieved with the code above
<a href="<?php echo curPageURL() . "{$part}#sendMessage"; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a>
或者您可以在连接中使用三元运算符,但是您需要将其括在括号中才能正常工作,如下所示:
<a href="<?php echo curPageURL() . ($browserUrl == 'https://www.someurl.com' ? $parts[3] : $parts[4]) . '#sendMessage'; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a>
就我个人而言,我不喜欢这样,因为阅读时有些令人困惑。