当前浏览:首页 / WordPress钩子 / template_include

apply_filters( 'template_include', string $template )

在引入当前模板之前过滤模板的路径

include

templatemore...


参数

$templatestring
要被引入的模板的路径。

更多信息

这个过滤器钩子在WordPress引入预定模板文件之前立即执行。这可以用来覆盖WordPress的默认模板行为。


源码

查看源码 官方文档


更新日志

版本描述
3.0.0开始引入

使用示例

  • 示例1

    如果找到了新模板文件,此示例将在名为“portfolio”的页面上引入一个新模板。

    add_filter( 'template_include', 'portfolio_page_template', 99 );
    function portfolio_page_template( $template ) {
        if ( is_page( 'portfolio' )  ) {
            $new_template = locate_template( array( 'portfolio-page-template.php' ) );
    	if ( '' != $new_template ) {
    	    return $new_template ;
    	}
        }
        return $template;
    }
  • 示例2
    /**
    * multiple custom routing with one page
    */
    add_filter( 'template_include', 'wpdocs_include_template_files_on_page' );
    
    function wpdocs_include_template_files_on_page( $template ) {
    
    	$action = isset( $_GET['action'] ) ? $_GET['action'] : 'list';
    
    	switch ( $action ) {
    
    		case 'add-list' :
    			$template = __DIR__ . 'views/address-new.php';
    			break;
    
    		case 'edit-list' :
    			$template = __DIR__ . 'views/address-edit.php';
    			break;
    
    		case 'view-list' :
    			$template = __DIR__ . 'views/address-view.php';
    			break;
    
    		default :
    			$template = __DIR__ . 'views/address-list.php';
    			break;			
    	}
    
    	return $template;
    }