是否可以从一个php文件中获取特定部分代码。对于一个项目,我有12个页面模板。所以在WordPress中,当我创建一个新页面并想要选择一个页面模板时,一个长列表将出现12个月。
这是几个月的例子。
Januari, Fabruari, Maart, April etc..
所以问题是,是否可以将所有PHP代码放在一个页面模板中。当你去一个特定的网址时,它会看一下域的结尾并基于php代码的那一部分。
示例:
www.domain.com/januari
从url / januari中取出部分 这是Januari
www.domain.com/februari
从url / februari中取出部分 这是Februari
将来会有很多页面模板,所以它看起来非常混乱。如果有一个页面模板" Months"它应该更干净。包含所有内容。希望你能理解这个问题!
谢谢!
答案 0 :(得分:2)
您可以使用全局$_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;
//...
}
但请注意,网址www.domain.com/januari?some=get¶ms
$_SERVER['REQUEST_URI']
的内容为/januari?some=get¶ms
。
答案 1 :(得分:2)
您不需要使用任何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',您可以应用条件语句将该值与您的参数进行比较。
或者您也可以选择is_page() wp方法将当前页面与您的参数进行比较。
答案 2 :(得分:1)
这个问题有很多种方法。我的方法是让你每个月保留单独的PHP文件,但只使用一个页面模板。
假设page-template-month.php
是您的模板文件。您的月份特定文件具有以下结构
theme-root /
- template-parts /
- - january.php
- - february.php
...
现在,获取特定查询术语并围绕它构建逻辑的方法。
get_the_ID()
上述函数返回帖子/页面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;
}
答案 3 :(得分:0)
您可以获取实际链接并将其剪切
$actualLink = "$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$whatYouWant = substr($actualLink, strpos($actualLink, "/")[1]);
但为什么不使用$ _GET?