不同目录中的WordPress自定义页面模板

时间:2011-10-04 作者:Daryl

是否可以在其他文件夹中使用自定义页面模板?

我正在为WordPress建立一个小框架,可以反复用于主题,为了保持整洁,我想将自定义页面模板放在不同的文件夹中,而不是主题目录的根目录中。

你会怎么做?

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

WordPress使用get_page_template() 要确定要使用的模板文件(可通过过滤器更改),请执行以下操作:

//for pages
add_filter( \'page_template\', \'My_custom_page_template\' );
function My_custom_page_template( $page_template )
{
    if ( is_page( \'my-custom-page-slug\' ) ) {
        $page_template = \'pathto/custom-page-template.php\';
    }
    return $page_template;
}

//for posts 
add_filter( \'single_template\', \'My_custom_page_template\' );
function My_custom_page_template( $single_template )
{
    if ( is_single( \'my-custom-page-slug\' ) ) {
        $single_template = \'pathto/custom-post-template.php\';
    }
    return $single_template;
}

SO网友:Vivek Manglani

我想要与此相同的功能。看起来,如果没有核心更改,就不可能做到这一点,但我设法让它工作起来——以一种稍微不同的方式。

在主题的根目录中创建一个页面模板,称之为themename page loader。php

在该文件中输入以下代码:

/**
 * Template Name: ThemeNAME Page Loader
 */

global $post;

// Define the post_name and the file name of the current page
$pslug = $post->post_name;
$pname = $pslug . \'.php\';

    // Load the TEMPLATE file in your custom directory
    require_once( TEMPLATEPATH . \'/views/\' . $pname );
然后在你的主题根目录中,为你的页面创建一个文件夹,在这个例子中我称之为我的视图。在该文件夹中放置页面模板,只需确保文件名与在中设置的页面名相同WP_ADMIN.

结束

相关推荐

本地安装:install.php提供下载,而不是运行

我正在运行ubuntu 10.04桌面,php5。3和wordpress 3.2.1。我将wordpress目录复制到/var/www/sitename/blog. 我已经设置了mysql,并编辑了wp配置。php。但当我导航到http://localhost/sitename/blog/wp-admin/install.php, 我只提供保存或下载安装。php文件。我可以在任何/var/www/ 目录,包括/var/www/site/blog/wp-admin/.我一直在寻找解决方案,但没有找到任何相