导语:叶子前些日子在使用wordpress中使用is_page_template函数遇到了一个问题,就是明明模板存在,却得到判断值为假,到时IF里面的语句不执行。
is_page_template函数
这个函数是用来判断当前页面的模板文件的函数。我们可以判断不同的模板,然后执行不同的代码,例如我们可以在header.php里面运行这个函数
然后在header.php根据页面的不同,来执行不一样的代码,如下面的例子:
<?php if (is_page_template('home.php')) { echo '<div class="slider-wrap">'; get_template_part('includes/parts/home-page-header', 'latest'); echo '</div>'; } ?>
这段代码就是判断当前页面的模板是不是home.php,如果是,就执行里面的代码。
遇到的问题
就是上面这段代码,一直都运行得好好的,直到有一天,叶子在后台修改了这个home的内容,然后保存后,就就出现了这段代码不执行的情况,
叶子通过排查,发现is_page_template的返回值为假。于是,叶子打开放home.php的目录,发现home.php一直都在,为啥会得到假的返回值呢?
一开始,叶子还以为函数出BUG了,后来一想这是不可能的,于是在目录中仔细查找,终于发现问题所在了。
home.php被叶子不小心创建了一个备份文件,home-bak.php,而这个home-bak.php中的Template Name和home.php的Template Name是一样的,
那么当叶子点保存页面的时候,这个home页面记录的模板其实是home-bak.php,而叶子在程序中判断的是home.php,所以肯定是会得到假的返回值。
处理方法
删除目录下面的home-bak.php,然后再在后台页面里重新选择模板,点击保存。问题解决。
结束
你学会了吗?
我也遇到过。大多数错误,往往是由于粗心导致