添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
一直单身的海豚  ·  对外联络合作处·  6 月前    · 
高大的眼镜  ·  _mysql_exceptions.oper ...·  9 月前    · 

is 条件判断 more...

page more...

template more...

子目录中的页面模板

如果页面模板位于主题的子目录中(自WP 3.4起),请在模板文件名前加上文件夹名和斜杠,例如:

is_page_template( 'templates/about.php' );

不能在循环内使用

由于某些全局变量在循环期间被覆盖is_page_template()将不起作用。为了在循环后使用它,必须在循环后调用wp_reset_query()

由于页面模板slug存储在post_meta中,用于分配给页面模板的文章,因此可以直接查询post_meta以查看是否为给定页面分配了页面模板。这是is_page_template()内部使用的方法。

函数get_page_template_slug( $post_id )将返回当前分配的页面模板的slug(如果没有分配模板,则返回空字符串;如果$post_id与实际page不对应,则返回false)。您可以在任何地方(在循环中或外部)轻松使用它来确定是否为页面分配了页面模板。

  // in the loop:
  if ( get_page_template_slug( get_the_ID() ) ){
     // Yep, this page has a page template
  // anywhere:
  if ( get_page_template_slug( $some_post_ID ) ){
     // Uh-huh.
		

源码

查看源码 官方文档


更新日志

版本描述
4.7.0现在适用于任何文章类型,而不仅仅是页面
4.2.0$template参数已更改为也接受页面模板数组
2.5.0开始引入

使用示例

  • 示例1

    如果页面模板位于目录中,则可以使用以下内容:

    if ( is_page_template( 'directory-name/page-about.php' ) ) {
        // about.php is used
    } else {
        // about.php is not used
    

    如果您正在使用多个页面模板,并且希望保持文件的条理化,这将非常有用。

  • 示例2

    是否正在使用页面模板“about”?请注意,与其他条件不同,如果要指定特定的页面模板,则需要使用文件名,例如about.phpmy_page_template.php

    if ( is_page_template( 'about.php' ) ) {
    	// about.php is used
    } else {
    	// about.php is not used
    
  • 示例3

    您还可以通过传递模板名称数组来指定多个模板。

    if ( is_page_template( array( 'template-full-width.php', 'template-product-offers.php' ) ) ) {
       // Do Something here if either of the above templates are being used
    else {
       // Else do this