2011-10-22 21 views
0

我正在运行Wordpress 3.2,我需要一个条件来测试某个模板。我的模板是一个名为special_offer.php的文件。该模板的名称是“特别优惠”。我已经尝试了以下两种方法:如何在Wordpress 3 +中使用is_page_template()指定特定模板

is_page_template('special_offer.php'); 
is_page_template('Special Offer'); 

这些都不工作!该documentation明确表示,该参数应与文件名的字符串,所以我不知道什么是错的。我知道这个函数至少有部分功能,因为如果我不包含参数,它将使用模板返回true(如预期的那样)。

回答

2

AHA! 我通过在条件之前添加wp_reset_query()来解决此问题。

我已经阅读了许多WP条件不在循环内工作的警告。但是,我的条件不在循环内。 原来,即使在我的地方,循环之后它也不会工作。因此,您需要在调用之前重置查询。

0

这是哪个文件被根据WordPress template hierarchy [图像]用值得双重检查。

尝试增加这个魔术常量您认为该模板文件被称为:

<?php echo(__FILE__); ?> 

如果您没有看到一个路径和文件名不同的文件正在被使用(请参阅在模板层次图上面的链接),或检查哪些模板:

<?php print_r(get_page_templates()); ?> 

(^看起来像这样必须从管理界面例如,在一个插件叫做)

此外,该文档似乎声明is_page_template()不会在循环中工作,而无需先调用另一个函数。

+0

在这种情况下,我确实正在编辑正确的模板文件,但对于不熟悉模板层次结构的任何人来说,这是一个很好的提示。魔术__FILE__常量也很酷知道。 – emersonthis

相关问题