在wordpress中使用is_page_template遇到判断模板无效的问题

在wordpress中使用is_page_template遇到判断模板无效的问题

在wordpress中使用is_page_template遇到判断模板无效的问题

导语:叶子前些日子在使用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,然后再在后台页面里重新选择模板,点击保存。问题解决。

结束

你学会了吗?

编辑 杨

我们是一群WordPress的爱好者,爱它的简单快捷,爱它的变化多样。

或许您还喜欢下面的文章

留下一条回复

关闭