是否可以从一个php文件中获取特定部分代码。对于一个项目,我有12个页面模板。所以在WordPress中,当我创建一个新页面并想要选择一个页面模板时,一个长列表将出现12个月。
这是几个月的例子。
Januari, Fabruari, Maart, April etc..
所以问题是,是否可以将所有PHP代码放在一个页面模板中。当你去一个特定的网址时,它会看一下域的结尾并基于php代码的那一部分。
例:
呜呜呜.domain.com/叫阿努阿日
从url / januari中获取部分 这是Januari
呜呜呜.domain.com/Feb如阿日
从url / februari中获取部分 这是Februari
将来会有很多页面模板,所以它看起来非常混乱。如果有一个页面模板“Months”包含其中的所有内容,它应该更干净。希望你能理解这个问题!
谢谢!
有许多方法可以解决这个问题。我的方法将允许您每个月保留单独的PHP文件,但只使用一个页面模板。
假设page-template-month.php
是你的模板文件。您的月份特定文件具有以下结构
theme-root /
- template-parts /
- - january.php
- - february.php
...
现在,获取特定查询术语并围绕它构建逻辑的方法。
get_the_ID()
上面的函数返回post / page ID,您可以围绕该ID构建逻辑。现在,您的page-template-month.php
文件将包含以下代码段
switch( get_the_ID() ) {
case 5:
// let's assume it's the page for January
get_template_part( 'template-parts/january' );
break;
case 18:
// let's assume it's the page for February
get_template_part( 'template-parts/february' );
break;
}
您可以使用全局$_SERVER['REQUEST_URI']
来确定用于访问PHP脚本的路径。然后你可以根据if
条件或switch case
打印特定的部分:
对于网址www.domain.com/januari
$_SERVER['REQUEST_URI']
将是/januari
,对于www.domain.com/februari
ir将是/februari
等...
switch($_SERVER['REQUEST_URI']) {
case '/januari':
//January code here
break;
case '/februari':
//February code her
break;
//...
}
但请注意,对于URL www.domain.com/januari?some=get¶ms
$_SERVER['REQUEST_URI']
将是/januari?some=get¶ms
。
您不需要使用任何PHP方法。
只需在Wordpress中使用Page Slug的概念。
这是代码,它为您提供当前打开页面的slu ..
<?php
global $post;
$post_slug = $post->post_name;
switch ($post_slug) {
case 'january':
// page for January
get_template_part('template-parts/january');
break;
case 'februari':
// page for februari
get_template_part('template-parts/februari');
break;
... and so on
}
通过将slug变为变量'$ post_slug',您可以应用条件语句将该值与您的参数进行比较。
或者你也可以选择wp的is_page()方法来比较当前页面和你的参数。
您可以获得实际链接并剪切它
$actualLink = "$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$whatYouWant = substr($actualLink, strpos($actualLink, "/")[1]);
但为什么不使用$ _GET?