is_page_template not working

时间:2019-02-11 作者:soliddigital

您好,请尝试下面的代码以开始工作,但到目前为止尚未查看。如果页面模板是page-47.php 陈列<h1>Something</h1> 其他的<h1>This will show on any other page</h1> .

<?php if ( is_page_template( \'page-47.php\' ) ): ?>

   <h1>Something</h1>

<?php else: ?>

   <h1>This will show on any other page</h1>

<?php endif ?>
谢谢你

2 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

is_page_template() 只会告诉您页面是否使用自定义页面模板。表示通过添加Template Name: 注释文件并从模板下拉列表中选择它,如所述here. 该函数通过检查为其选择模板的post meta来工作。

如果您使用slug或ID创建了一个页面模板,请使用下面描述的方法here, 如果您似乎有,那么所使用的模板不会存储在meta中,因此不会被is_page_template() 作用

如果要知道当前使用的模板的文件名,无论它是否为自定义模板,都可以使用全局$template 变量:

global $template;

if ( basename( $template ) === \'page-47.php\' ) {

}

SO网友:Webvd

感谢雅各布·皮蒂!这也解决了我的问题。

add_filter( \'woocommerce_currency_symbol\', \'change_currency_symbol\', 10, 2 );

function change_currency_symbol( $symbols, $currency ) {
    
    global $template;
    
    if ( basename( $template ) === \'archive-chiptuning.php\' && ( \'EUR\' === $currency )) {
        return \'\';
    }
        return $symbols;
}

相关推荐