Php 如果[page]在此目录中,则。。(如果/然后根据URL)

Php 如果[page]在此目录中,则。。(如果/然后根据URL),php,if-statement,Php,If Statement,因此,我使用以下代码: <?php $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; if($host == 'domain.com/portfolio/travel/') { ?> <style> @import url('<?php echo get_template_directory_uri(); ?>/vertical-portfolio.css'); </style>

因此,我使用以下代码:

<?php
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host == 'domain.com/portfolio/travel/') 
{ ?>
<style>
@import url('<?php echo get_template_directory_uri(); ?>/vertical-portfolio.css');
</style>
<?php } ?>

@导入url('/vertical portfolio.css');
根据我在上面的发现

虽然它在其核心工作,但我希望代码导入的不是/travel本身,而是其中的子代码(即travel/bermuda、travel/canada等)


要执行此操作,我将包含哪些变量?

如果要检查URL是否以该路径开头,请使用:

if (strpos($host, 'domain.com/portfolio/travel/') === 0)
确保使用精确的比较
==
。如果找不到字符串,
strpos()
返回
false
,如果使用
=
,它将匹配
0

要仅查找子目录,可以使用以下方法:

if (preg_match('#^domain.com/portfolio/travel/.*/#', $host))

转到以了解有关常规表达式的更多信息。

您的问题似乎让我感到困惑。基本上,如果某个文件位于某个目录中,我希望将该文件包含到模板中。所以domain.com/travel不会调用该文件,但domain.com/travel/COUNTRY会调用该文件,其中COUNTRY是一个变量。TLDR:如果文件位于文件夹x中,那么include.maybe
strpos
将在您的案例中起作用,就像
strpos($host,'travel')
这是否也适用于公文包/旅行本身?我只希望travel中的文件受到影响。我想会有一些变量,比如($host=='domain.com/portfolio/travel/$variable')
portfolio/travel
是一个目录,而不是脚本。我知道。我只是想我曾经见过一个美元符号+字母来表示目录中的内容。这就是如何构造一个将变量值插入字符串的路径名。这与模式匹配无关。啊。用你的代码调整代码/除其中的页面外,旅行也受到影响。有没有办法排除旅游层本身?我认为(基于WP构造事物的方式),假设/travel calls/travel/indexfileofsomesort.extension,它只需要应用于子目录而不是页面