有没有办法检查是否正在使用page.php模板?标准方法不起作用:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div id="trending-wrap" class="clearfix">
<a id="trending-moneyshot" href="javascript:void(0);">
<img class="pull-left" src="/image/local/global/trending_image_default.png" />
</a>
<div id="trending-text-wrap">
<div id="trending-title" class="spacerBottomMedium">
Trending: <span class="bold"></span>
</div>
<div id="trending-text">
<p></p>
<a id="trending-refresh" href="javascript:void(0);" style="display:none;">
<img class="pull-left" src="http://lorempixel.com/50/50/technics" />
</a>
</div>
</div>
</div>
但是,如果我将page.php更改为任何其他模板(page-about.php等),它可以正常工作。
答案 0 :(得分:0)
我也无法使is_page_template();
正常工作。我将其放入footer.php
和header.php
进行测试,它会显示正在使用的页面模板以及是否正在使用page.php
。如果它被放入标题中,它可以很容易地适应控制页面上接下来发生的事情。
它应该可以正确地完成WordPress风格并放入你孩子主题的functions.php
中,但这是基本代码:
<?php $temp = explode('/', get_page_template());
if( $temp[count($temp)-1] == "page.php" ) {
echo " page.php is being used.";
}else{
echo $temp[count($temp)-1] . " is being used.";
}
?>
它获取当前模板的完整路径,分割页面名称并比较或回显它。如果您实际上要回应它而不仅仅使用其功能来修改其他显示参数,那么您应该将其括在htmlspecialchars();
中以避免注入攻击。
<?php $temp = explode('/', get_page_template());
if( $temp[count($temp)-1] == "page.php" ) {
echo " page.php is being used.";
}else{
echo htmlspecialchars($temp[count($temp)-1]) . " is being used.";
}
?>
这看起来像是对更多WordPressy方法的讨论,以及它可能无法正常工作的可能原因 - 尽管我认为当你到达footer.php
时,应该很清楚哪个模板使用https://wordpress.org/support/topic/is_page_template-in-functionsphp-not-working
仅供参考,这是WordPress方法,在The Loop中使用时对其局限性进行了注释。 https://developer.wordpress.org/reference/functions/is_page_template/
答案 1 :(得分:0)
实际上它非常简单 只需使用:
is_page_template()
如果它返回true而不是page.php没有被使用,反之亦然 :)