调用子目录中的页面模板

时间:2015-02-11 11:06:50

标签: php html wordpress wordpress-theming

我有一个html的静态网站,这是多语言。所以,我根据选择的语言创建了几个子目录,这是语言的“lang”文件夹和francais的“fr”文件夹,西班牙语的“es”。但是,我不知道如何从控制面板调用WordPress中的模板页面,因为这些页面位于另一个文件夹中。

我已经评估了这个问题,我知道这是一个3.4版本的选项,您必须在主题的根目录中创建一个页面模板文件夹,但在我的情况下,我只能看到我的模板页面它们位于我的主题的根目录中,而不是来自子目录。

现在我的目录系统是:

wp-content - >主题 - > myTheme - > [page-templates folder] - index.php / style.css - > [lang folder] - > [es folder] - about_me.php

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

行。在我看来,你有几个选择。

1。不要将特定页面模板用于不同的语言。

更好的方法是使用wordpress已经提供的翻译选项。

要了解有关它们的更多信息,请至少阅读:

  1. Translating Wordpress
  2. The function _e()
  3. The function __()
  4. 2。使用数组或其他东西翻译自己的方式

    您可以在php中轻松创建自己的语言文件,并将语言翻译成阵列以翻译您的网站。

    <强> 实施例

    文件1 - 语言-EN.php

    $language_array = array(
      "hello" => "hello",
      "world" => "world"
    );
    

    文件2 - 语言-LL.php

    $language_array = array(
      "hello" => "hallo",
      "world" => "wereld"
    );
    

    文件3 - Page-Template.php

    $language = "nl";
    if($language = "nl")
    {
        include 'language-nl.php';
    }
    elseif ($language = "en")
    {
        include 'language-en.php';
    }
    echo $language["hello"];
    

    或(如果您确定正确设置了$ language变量)

    $language = "nl";
    include "language-{$language}.php";
    echo $language["hello"];
    

    3。正如您所问:从子目录

    加载模板

    <强> 实施例

    在主题根目录中创建页面模板

    文件:page-custom.php

    <?php
    /*
    Template Name: My Custom Page
    */
    
    include get_template_directory() . "/subdirectory/subpage-custom.php";
    

    然后在子目录

    中创建一个新文件

    文件:theme-root / subdirectory / subpage-custom.php

    <?php echo "Your code goes here"; ?>
    

    现在,您可以从帖子编辑器(在属性下)

    中选择页面模板

答案 1 :(得分:0)

WordPress仅搜索主题目录中的模板和下面的一个级别。要做你想做的事,你需要适应这个。例如:

/themes/myTheme
    /templates-en
    /templates-es
    ...